home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / dviware / ln03 / rmcs / dviln03.tex_publish (.txt) < prev    next >
LaTeX Document  |  1991-10-01  |  133KB  |  2,268 lines

  1. \let\iffulldoc=\iftrue  %%% Change to \iffalse if you don't have DVItoLN03
  2.                         %%% working yet (any version post V3.1 will do!)
  3. \let\ifatrmcs=\iffalse  %%% Leave this, unless you have RMCS's shield font!
  4. \let\ifrmcs=\iffalse    %%% Leave this completely
  5. \let\ifdollars=\iffalse %%% Change to \iftrue if still using TEX$... logicals
  6. %%%  Make sure that you revise this file to reflect local conditions; this
  7. %%%  includes references to local versions of the \LaTeX user guide, and also
  8. %%%  defining the macros \sitename and \contact
  9. % Wherever this document introduces information that may vary from site to
  10. % site, the line(s) will end with  %%%      SYSDEP
  11. % Such sections should be modified to match local requirements; in
  12. % particular, the definition of \contact should be changed to be the name of
  13. % the local TeX administrator, and \sitename to your favourite name for your
  14. % site
  15. \def\contact{\meta{contactname}}%%%                           SYSDEP
  16. \def\sitename{\meta{sitename}}%%%                             SYSDEP
  17. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  18. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  19. \iffulldoc
  20. \documentstyle[11pt,twoside,changebar,graphics]{article}\else
  21. \documentstyle[11pt,twoside]{article} \let\cbstart=\relax \let\cbend=\relax
  22. \hyphenation{post-am-ble pre-am-ble down-loa-ded sto-red}
  23. \hyphenation{re-cor-ded}
  24. \makeatletter
  25. % This redefines \@arabic to the old (V2.08)
  26. % form wherein \@arabic{ctr} (and through it, \arabic{ctr}) only
  27. % produce printed output for values of ctr > 0.
  28. % This means that \setcounter{page}{0} may be used to ensure that
  29. % such things as title pages, etc, don't bear a page number, and
  30. % also so that ``non-standard'' footnotes may be interpolated into
  31. % the text by means of \footnotetext[0]{$^\dag$ Some text}, say.
  32. \def\@arabic#1{\ifnum #1>0
  33.                      \number #1%
  34.                \fi}
  35. % Define this to squash up lists being used as simulated lines of DCL
  36. \def\squash{\itemsep=\z@ \relax \parsep=\z@ \parskip=\z@}
  37. \makeatother
  38. \pagestyle{headings}
  39. \textheight=21cm
  40. \newfont{\tinyss}{cmss8}
  41. \newfont{\logo}{logo10 scaled\magstephalf}
  42. \ifatrmcs
  43.   \newfont{\shieldfont}{shield}
  44.   \newcommand{\shield}{{\shieldfont\char`\@}}
  45. \else
  46.   \let\shield=\relax
  47. \newenvironment{note}{\quote\centerline{\bf Note}}{\endquote}
  48. \newcommand{\chapend}{\clearpage \ifodd \count0\else
  49.             \markboth{}{}\vspace*{\fill}%
  50.             \centerline{\small This page is left intentionally blank}%
  51.             \vspace*{\fill}\cleardoublepage
  52.           \fi}
  53. % Uncomment the next line if you don't mind pages with nothing but numbers
  54. % \let\chapend=\cleardoublepage
  55. \newcommand{\meta}[1]{$\langle\mbox{\it #1\/}\rangle$}
  56. \newcommand{\ESC}{{\tinyss\raisebox{0.5ex}{E}\kern-.2em%
  57.                                      \raisebox{-0.5ex}{C}}}
  58. \newcommand{\TYP}{{\tt.TYP}}
  59. \newcommand{\DVI}{{\tt.DVI}}
  60. \newcommand{\TFM}{{\tt.TFM}}
  61. \newcommand{\LN}{{\tt.LN3}}
  62. \newcommand{\DVItoLN}{{\sf DVI\-to\-LN03}}
  63. \ifdollars\newcommand{\logsep}{\$}\else\newcommand{\logsep}{\_}\fi
  64. \newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
  65.     T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
  66. \newcommand{\SliTeX}{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern
  67.    -.1667em\lower.7ex\hbox{E}\kern-.125emX}}
  68. \newcommand{\SLiTeX}{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern
  69.    -.1667em\lower.7ex\hbox{E}\kern-.125emX}}
  70. \newcommand{\MF}{{\logo META}\-{\logo FONT}}
  71. \newcommand{\TeXware}{\TeX\kern-.1em ware}
  72. \newcommand{\Web}{{\sc Web}}
  73. \newcommand\DVItoVDU{{\sf DVIto\kern-.06em VDU}}
  74. \newcommand\bs{\char '134 }  % A backslash character for \tt font
  75. \newcommand\verbsp{\char '40  }  % The \verb* space character in \tt font
  76. \newcommand{\prompt}{{[DCL]\$}}
  77. \newcommand{\cont}{{\leavevmode\kern.06em\vbox{\hrule width.4em height .8pt}\$}}
  78. \title{DVILN03 User Guide\\for the {\sl VAXen\/} at \sitename}
  79. \author{Brian Hamilton Kelly\\School of Electrical Engineering \& Science\\
  80. \shield\\
  81. Royal Military College of Science\\Shrivenham}
  82. \date{30th September 1991\\For {\tt DVILN03} Version 4.1}
  83. \begin{document}
  84. \setcounter{page}{0}
  85. {\def\thefootnote{\fnsymbol{footnote}}
  86. \maketitle
  87. \begin{abstract}
  88.    This document describes the operation of the {\tt DVILN03} command on the
  89.    {\sl VAX\/} computer.  This command activates the {\sf DVItoLN03}
  90.    program, which allows a \TeX{} output file in device-independent \DVI{}
  91.    form to be converted to a file which may be printed on a DEC
  92.    LN03\footnote{{\sl VAX\/} and {\sl LN03\/} are registered trademarks of
  93.    the Digital Equipment Corporation} laser printer. 
  94.    It is assumed that the reader is familiar with \LaTeX{}  and has read
  95.    the local \LaTeX{} User Guide~\cite{RMCS:latexguide}.
  96.    Familiarity with the {\sl VAX/VMS\/} operating system is also assumed. 
  97.    If you have a question that you can't answer by reading this document, ask
  98.    \contact.  He should also be informed of any possible \DVItoLN{} bugs or
  99.    undocumented anomalies. \ifrmcs\else
  100.    Bugs that cannot be resolved locally at \sitename{} can be reported to the
  101.    author, Brian {\sc Hamilton Kelly}, who may be contacted by E-mail as
  102.    {\tt<TeX@uk.ac.cranfield.rmcs>} (on the {\sc Janet} network).\fi
  103. \end{abstract}}
  104. \newpage
  105. \pagenumbering{roman}
  106. \tableofcontents
  107. \listoffigures
  108. \section*{Acknowledgements}{\small
  109. The code for handling the Rose-style \verb+\special+s for changebar marking
  110. was added by Robin Fairbairns of LaserScan, Cambridge, UK, at version 3.1-1.
  111. The algorithms for handling the newer DEClaser printers were provided by
  112. Karsten Nyblad of TFL, the Danish Telecommunications Research Laboratories;
  113. they arrived just as all the other enhancements had been completed at
  114. version 3.9, and were integrated into this new release.
  115. My colleague Niel Kempson has provided much-needed support and encouragement,
  116. and has made many useful suggestions for enhancements
  117. over the years (his latest idea, just as I'm about to release this, is to
  118. make the program capable of handling binary files that {\em aren't\/}
  119. organized as 512-byte fixed-length records, but that will have to await a
  120. future release).
  121. Finally, I must acknowledge my great indebtedness to the dedicated band of
  122. helpers who have acted as $\beta$-site testers (and provided useful
  123. suggestions for enhancements):
  124. \begin{itemize}
  125. \item Phil Taylor (\verb+<P.Taylor@vax.rhbnc.ac.uk>+), of Royal Holloway and
  126. Bedford New College, 
  127. \item Robin Fairbairns (\verb+<rf@cl.cam.ac.uk>+),
  128. \item Karsten Nyblad (\verb+<karsten@tfl.dk>+), and
  129. \item Rob Schumann (\verb+<schumann@ersvm1.dnet.nasa.gov>+), of the European
  130. Space Agency, at Frascati in Italy. 
  131. \end{itemize}
  132. (and of course, the dozens of unsuspecting guinea-pigs at the Royal Military
  133. College of Science!)
  134. \newpage
  135. \section*{New and Changed Features}
  136. \markboth{SUMMARY OF CHANGES}{SUMMARY OF CHANGES}
  137. \addcontentsline{toc}{section}{New and Changed Features}\cbstart
  138. \DVItoLN{} V4.1 is a maintenance update which incorporates some minor bug
  139. fixes (mostly to handle obscure font problems).  It is provided as a change
  140. file to be applied to the {\tt DVITOLN03.WEB} V4.0 file; a new version of
  141. the {\tt.WEB} file is also included, because both files have now been
  142. ``detabbed''.
  143. The following new features are added in this version:\begin{itemize}
  144.     \item The \verb|/PAPER_SIZE| qualifier is introduced to allow system
  145.     managers to specify the default paper size (European \verb|A4| vs.\
  146.     \verb|US|); this is necessary since the mixing of landscape and portrait
  147.     orientation output on the same page requires an intimate knowledge of
  148.     the size of the paper.  The qualifier cannot be specified explicitly to
  149.     produce output as if sent to the non-default paper size, since the
  150.     switch on the back of the printer also needs to be changed, and the
  151.     power cycled.
  152.     \item The \verb|/VERBOSE| qualifier is introduced; in the distributed
  153.     {\tt.CLD} file, this is on by default, and produces the same terminal
  154.     output as earlier versions of the program.  By making the default
  155.     \verb|/NOVERBOSE|, or specifying this explicitly on the command line,
  156.     messages to the terminal are reduced to:\begin{itemize}
  157.         \item the name of the {\tt.DVI} file being processed;
  158.         \item the report of the total numbers of bytes of fonts downloaded;
  159.         \item the numbers of the pages processed.
  160.     \end{itemize}
  161. \end{itemize}
  162. The following bugs are fixed in this version:\begin{itemize}
  163.     \item Optimization of font downloading had made the program incapable of
  164.     handling fonts containing more than 188 glyphs.
  165.     \item All rules were output in the orientation specified in the command
  166.     line, even if some of them should have appeared in the opposite
  167.     orientation.
  168.     \item Mixed portrait/landscape material requires knowledge of the
  169.     physical paper size, because the ``origin'' in landscape mode is related
  170.     to the {\em bottom\/} edge of the paper.
  171.     \item Changing the orientation within a page resets the margins to the
  172.     hardware defaults, which necessitates that the program change them again.
  173.     \item A font that contains duplicated characters (can only happen with
  174.     {\tt PK} fonts), if all characters were imaged (e.g., with {\tt
  175.     testfont}), would result in an illegal font download.  The program now
  176.     detects such erroneous fonts, which is more than any \TeX ware or
  177.     fontware does (apart from {\tt GFtoPXL})!
  178. \end{itemize}
  179. \DVItoLN{} V4.0 was \cbend the first public release since V3.1-4; other
  180. versions have been used internally at the author's site, and some of these
  181. have been circulated to a dedicated band of $\beta$-site testers---I'm very
  182. grateful for your help, gentlemen!
  183. \DVItoLN{} V4.0 introduces the following refinements and new features
  184. compared with V3.1:\begin{itemize}
  185.     \item Support has been added for virtual font files; for every font, the
  186.     program will attempt to open a file with name \meta{fontname}{\tt.VF},
  187.     looking in the directory referenced through the qualifier
  188.     \verb|/VIRTUAL_DIRECTORY| (sites without any requirement for virtual
  189.     fonts can speed processing fractionally by making the default
  190.     \verb|/NOVIRTUAL_DIRECTORY|)\@. Glyphs from such a font will be imaged
  191.     from the appropriate physical fonts, obeying all \meta{dvi byte}
  192.     sequences in the {\tt.VF} file. 
  193.         
  194.     \item Support for \TeX's \verb|\special| command has been expanded and
  195.     improved; it is only necessary to provide sufficient
  196.     characters of a keyword to identify it uniquely: since all keywords (at
  197.     present) are unique in their first two letters, then only that many need
  198.     be provided, although any \verb|\special| sequences will ordinarily be
  199.     defined within a macro package or style option; authors of these are
  200.     encouraged to write all keyword parameters in full.
  201.     \item Support for two new \verb|\special| commands:
  202.     \begin{description}
  203.     \item[\tt landscape] Any text, rules, or graphics insertion, up to the
  204.     end of the current page, or the next \verb|\special{portrait}| command,
  205.     whichever occurs first,
  206.     will be output in landscape orientation, regardless of whether the
  207.     document is being processed in landscape or portrait mode.
  208.     \item[\tt portrait] The opposite of the previous command
  209.     \end{description}
  210.     Note that these keywords may be used with or without the `\verb|ln03:|'
  211.     prefix, since the concept of printing orientation transcends any concept
  212.     of device dependence.
  213.     \item The qualifiers \verb|/LEFT_MARGIN| and \verb|/TOP_MARGIN| now
  214.     require that their associated values be specified using the syntax of a
  215.     \TeX{} \meta{dimension}, that is, by a number (real or integer) followed
  216.     by a two-letter code for a \TeX{} \meta{physical unit}; the standard
  217.     units of \TeX{} ({\tt pt sp pc in cm mm dd cc}) are supplemented by {\tt
  218.     mi} (for micron, i.e.~1$\mu$m) and {\tt px} (for pixel).  
  219.     \item The program no longer assumes that \TFM{} files will be found in
  220.     the directory indicated by the logical name \verb|TEX$FONTS|; instead,
  221.     this information is conveyed to the program through the
  222.     command-definition file, using the \verb|/TFM_DIRECTORY| qualifier.  
  223.     System managers are now free to use logical names of the form
  224.     \verb|TEX_INPUTS| instead, and thus conform to {\sl Digital's\/}
  225.     recommendations regarding customer-assigned logical names.
  226.     \item Previous versions of the program would abort upon discovering a
  227.     reference to a font for which character bitmaps could not be found (in
  228.     either packed or unpacked pixel files).  This was somewhat user-hostile,
  229.     and at variance with the proposed Level~0 DVI-Driver
  230.     Standard~\cite{Hosek}, so the
  231.     program now substitutes solid rules of appropriate dimensions for glyphs
  232.     from such a font.  A warning message will be displayed.
  233.     \item A mechanism has been provided by which spurious `{\tt Page wider
  234.     than TeX reported}' messages may be suppressed by the user: see the
  235.     descripton of the \verb+/HFUZZ+ qualifier.  For completeness of
  236.     orthogonality, the complementary \verb+/VFUZZ+ qualifier is also
  237.     provided, but it's extremely unlikely that this would ever be required.
  238.     \item Command-line qualifiers have been provided to support {\sl
  239.     Digital's\/} new DEClaser~$2100^{\dag}$\footnotetext[0]{$^{\dag}$
  240.     DEClaser and LN05/LN06 are registered trademarks of {\sl Digital}}
  241.     and~2200 printers (otherwise known as the
  242.     LN05 and LN06).  The user can control whether printing will be in
  243.     simplex or duplex mode (printing on both sides of the paper), and from
  244.     which tray(s) the paper will be fed.
  245.     \item Last, but definitely not least, considerable speed improvements
  246.     have been made by reorganizing some data structures to reduce the
  247.     likelihood of the VAX having to page fault.
  248.     \end{itemize}
  249. \subsection*{V3.1 Changes}
  250. \DVItoLN{} V3.1 introduced the following refinements and new features
  251. compared with V3.0:\begin{itemize}
  252.     \item Support for \TeX's \verb|\special| command was expanded and
  253.     improved.
  254.     Sixel (or other LN03) files may now be included using the
  255.     following syntaxes within the parameter of the \verb|\special| command:
  256.     \begin{itemize}
  257.         \item \verb*|\special{SX |\meta{filename}\verb|}|
  258.         \item \verb*|\special{ln03:plotfile |\meta{filename}\verb|}|
  259.         \item \verb*|\special{ln03:sixel |\meta{filename}\verb|}|
  260.     \end{itemize}
  261.     These commands will not normally be inserted directly by users, but
  262.     through the use of a document style option, such as \verb|graphics|,
  263.     see~\S\ref{subsec:graphics}.
  264.     \item The Flavio Rose \verb|\special|s are supported to draw vertical
  265.     bars beside changed material.  The parameters
  266.     recognized are as follows, with [\,] bracketing material that may be
  267.     omitted: 
  268.     \begin{itemize}
  269.         \item \verb*|\special{ln03:defpoint |\meta{point\_no}%
  270.              \verb|(|[\meta{dimen}]\verb|,|[\meta{dimen}]\verb|)}|.\\
  271.              Define a point, in terms of $x$ and $y$ coordinates on the
  272.              page. Either coordinate may be omitted, when the definition
  273.              takes place with the appropriate current position.  This
  274.              therefore defines point $p_i$ to be at $(x_i,y_i)$.
  275.         \item \verb*|\special{ln03:connect |\meta{point\_pair}\verb*| |%
  276.              \meta{point\_pair}[\verb*| |\meta{dimen}]\verb|}|,\\
  277.              where $$\mbox{\meta{point\_pair}}\equiv
  278.              \mbox{\meta{point\_no}[\verb|/|\meta{point\_no}]}$$
  279.              Connect pairs of points together, with a rule of width (height)
  280.              \meta{dimen}.  If omitted, the latter reverts to the usual 2
  281.              pixels (0.4pt).  The points must be capable of being connected
  282.              by a rule that is either strictly vertical or strictly
  283.              horizontal.   The variant of \meta{point\_pair} with the
  284.              intervening `{\tt/}' is used with {\tt twoside} printing to
  285.              specify {\em two\/} pairs of points, one to be used on
  286.              left-hand pages, and one on right-hand.
  287.         \item \verb*|\special{ln03:resetpoints |\meta{first}%
  288.               \verb*| |\meta{last}\verb|}| Cancel all knowledge of the
  289.               coordinates of points $p_f\ldots p_l$.
  290.     \end{itemize}
  291.     Again, the user need not worry about creating such \verb|\special|
  292.     commands directly: the style option \verb|changebar| provides the
  293.     appropriate macros which are invoked by means of the commands
  294.     \verb|\cbstart| and \verb|\cbend|, or by the \LaTeX{} environment {\tt
  295.     changebar}.
  296.     \item Program now supports an optional file specification on the
  297.     \verb|/LOG| qualifier.
  298.     \item Program now provides the \verb|/OUTPUT| qualifier which may be
  299.     used to direct output to a different file specification (for example,
  300.     onto a scratch disk), or even directly to the LN03 printer, possibly as
  301.     a spooled device.
  302.     \item The program now ensures that all output files are created in the
  303.     user's current directory (unless overridden by
  304.     {\tt/OUTPUT}): formerly, the use of a logical name could cause such
  305.     files to be created in a different directory. 
  306.     \item Correctly reports the relative magnification of fonts loaded at
  307.     non-standard sizes.
  308. \end{itemize}
  309. \subsection*{V3.0 Changes}
  310. The following enhancements were made to \DVItoLN{} at V3.0:
  311. \begin{itemize}
  312.     \item Both packed and unpacked font files may now each be held in
  313.     ``rooted'' or ``flat'' directory structures.
  314.     \item Program can handle fonts with the \TeX{} maximum of 256 characters,
  315.     which permits access to Silvio Levy's Greek fonts
  316.     \item The \verb|/LOG| and \verb|/NOLOG| qualifiers permit user selection
  317.     of whether the program's log file (\verb|.TYP|) is retained after
  318.     processing. 
  319.     \item Program correctly computes the imaging area of standard European
  320.     A4 paper.
  321. \end{itemize}
  322. \newpage
  323. \setcounter{page}{1}\setcounter{footnote}{0}
  324. \pagenumbering{arabic}
  325. \section{Introduction}
  326. \subsection{What \LaTeX{} does with your Source File}
  327. When any program\footnote{This document refers mostly to \LaTeX, since that
  328. is the program most commonly used at the author's site;  however, it may be
  329. assumed that this includes \TeX{} and \SliTeX{} as well} of the \TeX{}
  330. family is run (\TeX, \LaTeX{} or \SliTeX), it produces two output files. 
  331. One of these is the {\sl log file}, which records all the output that
  332. \LaTeX{} sent to the terminal (and a lot more besides!).  On a {\sl VAX\/}
  333. implementation of \LaTeX, this file has the file type `{\tt .LIS}'\@.
  334. However, it is the other file which is of most interest because this
  335. contains all the instructions to typeset your document; this file is in a
  336. {\sl Device-Independent Format\/} which is common to {\it every\/} \LaTeX{}
  337. site in the world and has a file type of `\DVI'\@. Details of the internal
  338. format of \DVI{} files are explained within the program {\sf DVItype}, which
  339. describes the definitive method for processing  \DVI{} files, but need only
  340. concern those who are writing \DVI{} processing programs.  Details of most
  341. \TeXware{} files have also been published in various issues of {\sl
  342. TUGboat}, the newsletter of the \TeX\ Users'
  343. Group~\cite{TUGboat-DVI,TUGboat-TFM,TUGboat-PXL,TUGboat-PK,TUGboat-GF}. 
  344. \subsection{Previewing \LaTeX{} Output}
  345. Before you can see what wonders \LaTeX{} has wrought for you, it is necessary to
  346. process this \DVI{} file.  As a first stage, you should use \DVItoVDU{} to
  347. produce a representation of your document on a graphics terminal, rather than
  348. waste paper unnecessarily; the \DVItoVDU{} User's
  349. Guide~\cite{RMCS:dvitguide}
  350. and the local \LaTeX{} User's Guide~\cite{RMCS:latexguide}
  351. describe how to use this program.
  352. \subsection{Committing \LaTeX{} Output to Paper}\label{sec:font-load}
  353. However, the time will come (soon, you hope!) when you are ready to commit your
  354. document to paper; now it is necessary to process the \DVI{} file with the
  355. command {\tt DVILN03} which activates the {\sf DVItoLN03} program\footnote{The
  356. command is {\bf not \tt DVITOLN03} because, if it were, the VAX/VMS command
  357. line interpreter (CLI) would be unable to distinguish between this and the 
  358. {\tt DVITOVDU} command}.  For example, to process the file {\tt
  359. xxx.DVI}, resulting from \LaTeX ing {\tt xxx.TEX}, you would
  360. type:
  361. \begin{description}
  362.     \item[\prompt\footnotemark] 
  363.     \footnotetext{In this document, the prompt from VAX/VMS is shown as
  364.         {\bf\prompt}}
  365.     \verb*+DVILN03 xxx+\footnote{The symbol `{\tt\verbsp}' represents 
  366.         mandatory whitespace (one or more spaces or tabs)} 
  367. \end{description}
  368. \DVItoLN{} reads the \DVI{} file,
  369. determines which individual characters of each font are used therein and
  370. writes an output file containing the necessary instructions to download the
  371. raster patterns corresponding to each character into the LN03 printer.  It
  372. then appends the necessary instructions to typeset your document using the
  373. downloaded characters. 
  374. The resultant output file has the file extension {\tt .LN3}, and can be queued
  375. for printing to any LN03 laser printer queue by normal {\sl VAX/VMS\/}
  376. commands.  However, because it contains many (long) escape sequences, and also
  377. takes care of all printer formatting, it must be printed with a number of
  378. special qualifiers for the print command.  The full details (for those who
  379. wish to set up new laser queues) are given in Appendix~\ref{sec:queues}.
  380. The \LN{}  file is full of escape sequences which are peculiar to the LN03,
  381. and will cause absolute havoc if passed to any other form of printer;
  382. therefore, take care not to queue it for printing to an ordinary line
  383. printer --- even {\tt TYPE}ing it to a VDU is {\em not\/} recommended!
  384. \subsubsection{Printing the \LN{} File}%%%                       SYSDEP
  385. To simplify the task of queueing the \LN{} file for printing, \sitename{}
  386. provides the {\tt TEXPRINT} command; this is actually a  {\sl DCL\/}
  387. symbol\footnote{For further information regarding {\sl DCL\/} symbols,
  388. see~\cite[chapter 5]{DEC:dcl-concepts}} which may be
  389. abbreviated to its first four letters, {\tt TEXP}\@.  When executed as a
  390. {\sl DCL\/} command, it invokes a command procedure which queues your file
  391. for printing on the appropriate LN03 printer.  
  392. \begin{note}
  393.     Most of the normal {\tt PRINT} command qualifiers ({\it eg\/ \tt /DELETE},
  394.     {\tt /COPIES=\it n}, {\it etc\/}) may be used with the {\tt TEXPRINT}
  395.     command.
  396.     For example, to print {\tt xxx.LN3}, deleting the file after printing
  397.     three copies, and sending you a message upon completion, type:
  398.     \begin{description}
  399.             \item[\prompt] 
  400.                 \verb|TEXPRINT/NOTIFY xxx/DELETE/COPIES=3|
  401.     \end{description}
  402. \end{note}
  403. \section{Doing more with DVItoLN03}
  404. The {\tt DVILN03} command normally processes the whole of the \DVI{} file
  405. and translates it all to a form intelligible to the LN03.  It also makes the
  406. standard \LaTeX{} assumptions, that is, that the text's {\sl reference point\/}
  407. is located exactly one inch down and one inch across from the top left-hand
  408. corner of the paper.  However, qualifiers to the {\tt DVILN03} command permit
  409. explicit control over which page shall be printed first, and how many
  410. following pages are to be printed.  It also allows selection of a different
  411. reference point, and even permits the paper to be ``turned on its side'', into
  412. the landscape orientation.
  413. The following sections and Appendix~\ref{sec:qualifiers} give full details of
  414. each of the qualifiers which are accepted by the {\tt DVILN03} command; these
  415. qualifiers are as follows: 
  416. \begin{itemize}
  417.     \item \verb|/STARTING_PAGE|
  418.     \item \verb|/NUMBER_OF_PAGES|
  419.     \item \verb|/TOP_MARGIN|
  420.     \item \verb|/LEFT_MARGIN|
  421.     \item \verb|/ORIENTATION|
  422.     \item \verb|/(NO)LOG|
  423.     \item \cbstart\verb|/(NO)VERBOSE|\cbend
  424.     \item \verb|/OUTPUT| 
  425.     \item \verb|/HFUZZ|
  426.     \item \verb|/VFUZZ|
  427.     \item \verb|/DEVICE_TYPE|
  428.     \item \verb|/PRINT_MODE|
  429.     \item \verb|/(NO)DUPLEX_BY_PAGE_NUMBERS|
  430.     \item \verb|/FEED_TRAY|
  431.     \item \cbstart\verb|/PAPER_SIZE|\cbend
  432.     \item \verb|/(NO)PK_FONT_DIRECTORY|
  433.     \item \verb|/(NO)PXL_FONT_DIRECTORY|
  434.     \item \verb|/TFM_DIRECTORY|
  435.     \item \verb|/(NO)VIRTUAL_DIRECTORY| 
  436. \end{itemize}
  437. (The last four qualifiers are {\em definitely\/} for system wizards only!)
  438. \subsection{Controlling which Pages DVItoLN03 Prints}
  439. Ordinarily, \DVItoLN{} translates all the pages in the \DVI{} file into a
  440. form which can be printed by the LN03 printer; however, if you are having
  441. difficulty in getting right a figure\footnote{Although \DVItoVDU{} is the
  442. recommended method of previewing your output, it sometimes happens that it
  443. cannot provide sufficient detail when performing this sort of proof-reading
  444. operation} on page 23 of a 200-page document, it is rather wasteful
  445. of paper to keep on printing all 200 pages (not to mention the time taken
  446. waiting for the output!)  Therefore \DVItoLN{} allows the user to
  447. specify which page shall be used as the starting point for printed output;
  448. it also permits the user to control how many pages are to be processed.
  449. The value on the \verb|/STARTING_PAGE=| qualifier is used to specify the
  450. starting page number; this is given as a {\em string\/} and takes the default
  451. value `{\tt*}'.  This default value will match any \LaTeX{} page number and so
  452. will normally start with the first page in your document, whatever its number.
  453. However, if you provide a single number, \DVItoLN{} will match this
  454. with the {\it first\/} occurrence of a page with that number. This means
  455. that if the pages of document \verb|MY_FILE| are numbered (0), (i), (ii),
  456. (iii), (1), (2), (3), \dots, say, then selecting \verb|/STARTING_PAGE=2|
  457. will select page (ii); there is no mechanism to select page (2) instead.
  458. (Note that {\em raw\/} \TeX{} would have had the values 0, -1, -2, -3, 1, 2
  459. and 3 for the above page numbers, and therefore page (2) {\em could\/} be
  460. selected directly; to accommodate such numbering schemes, the
  461. \verb+/STARTING_PAGE+ qualifier accepts negative numbers.)
  462. (If you've been clever and used raw \TeX's \verb|\count1|\dots{\tt 9} to get
  463. ``fancy'' page numbers, then you can specify these extra numbers, separated by
  464. periods (`.') to the \verb|/STARTING_PAGE=| qualifier; it is for this reason
  465. that the qualifier's value must be specified as a string of characters, and
  466. not as a simple numerical value.
  467. \verb|/STARTING_PAGE=3.*.19| would select the first page where \TeX's
  468. \verb|\count0| is 3 and \verb|\count2| is 19, no matter what value was in
  469. \verb|\count1|.) 
  470. The number of pages to be printed is specified as the value to the
  471. \verb|/NUMBER_OF_PAGES=| qualifier; this {\em is\/} a numerical value, and
  472. takes the default value {\tt 10000000} --- hopefully this will ensure that
  473. your whole document is printed!  Therefore to ensure that the page (2) of
  474. the earlier example is printed, you would need to issue the {\tt DVILN03}
  475. command as \begin{description} 
  476. \item[\prompt] \verb+DVILN03 MY_FILE /STARTING_PAGE=2 /NUMBER_OF_PAGES=4+
  477. \end{description}  thus getting pages (ii), (iii), (1) and (2).
  478. As with all {\sl DCL\/} commands and qualifiers, these may be
  479. abbreviated to the minimum to make them unambiguous; therefore the above
  480. command could also have been entered as
  481. \begin{description}
  482. \item[\prompt] \verb+DVIL MY_FILE/S=2/N=4+
  483. \end{description}
  484. \begin{figure}[htbp]
  485. \centering
  486. \setlength{\unitlength}{0.5pt}
  487. \begin{picture}(614,795)
  488. \footnotesize \tt
  489. % Main boxes
  490. \put(0,0){\framebox(614,795){\mbox{}}}
  491. \put(0,723){\line(1,0){614}}
  492. \put(72,0){\line(0,1){795}}
  493. \put(72,723){\makebox(0,0){$\bullet$}}
  494. \put(70,729){\makebox(0,0)[br]{\tiny Ref.~Point}}
  495. \put(72,696){\line(1,0){542}}
  496. \put(72,684){\line(1,0){542}}
  497. \put(72,659){\line(1,0){542}}
  498. \put(72,131){\line(1,0){542}}
  499. \put(72,101){\line(1,0){542}}
  500. \put(135,131){\line(0,1){528}}
  501. \put(480,131){\line(0,1){528}}
  502. \put(491,131){\line(0,1){528}}
  503. \put(581,131){\line(0,1){528}}
  504. % Vectors and markers
  505. \put(0,630){\vector(1,0){72}} % left margin
  506. \put(5,630){\vector(-1,0){5}}
  507. \put(5,640){1 in}
  508. \put(72,550){\vector(1,0){63}} % \oddsidemargin
  509. \put(77,550){\vector(-1,0){5}}
  510. \put(100,560){1}
  511. \put(160,795){\vector(0,-1){72}} % top margin
  512. \put(160,790){\vector(0,1){5}}
  513. \put(165,759){1 in}
  514. \put(275,696){\vector(0,1){27}}  % \topmargin
  515. \put(275,701){\vector(0,-1){5}}
  516. \put(285,705){2}
  517. \put(430,716){\vector(0,-1){20}} % \headheight
  518. \put(430,664){\vector(0,1){20}}
  519. \put(440,703){3}
  520. \put(300,659){\vector(0,1){25}} % \headsep
  521. \put(300,664){\vector(0,-1){5}}
  522. \put(310,670){4}
  523. \put(200,131){\vector(0,1){528}} % \textheight
  524. \put(200,136){\vector(0,-1){5}}
  525. \put(205,610){5}
  526. \put(135,200){\vector(1,0){345}} % \textwidth
  527. \put(140,200){\vector(-1,0){5}}
  528. \put(307,210){6}
  529. \put(460,570){\vector(1,0){20}} % \marginparsep
  530. \put(511,570){\vector(-1,0){20}}
  531. \put(496,580){7}
  532. \put(491,500){\vector(1,0){90}} % \marginparwidth
  533. \put(496,500){\vector(-1,0){5}}
  534. \put(505,510){8}
  535. \put(310,151){\vector(0,-1){20}} % \footskip
  536. \put(310,81){\vector(0,1){20}}
  537. \put(300,110){9}
  538. \end{picture}
  539. \vspace{1ex}
  540. \begin{tabular}{l@{\hspace{20pt}}l} 
  541. 1 \bs oddsidemargin = 63pt & 6 \bs textwidth = 345pt \\
  542. 2 \bs topmargin = 27pt & 7 \bs marginparsep = 11pt \\
  543. 3 \bs headheight = 12pt & 8 \bs marginparwidth = 90pt \\
  544. 4 \bs headsep = 25pt & 9 \bs footskip = 30pt\\
  545. \multicolumn{2}{l}{5 \bs textheight = 43\bs baselineskip + \bs topskip (528pt)}
  546. \end{tabular}}
  547. \caption{Example \LaTeX{} Page Layout\label{fig:layout}}
  548. \end{figure}
  549. \subsection{Controlling the Appearance of the Printed Page}
  550. All \LaTeX's page layout dimensions, such as {\tt\bs oddsidemargin}
  551. are measured from a standard {\sl reference point\/}; figure~\ref{fig:layout} 
  552. shows how \LaTeX{} lays out a page for the {\tt article} style using 10-point
  553. type.
  554. For special effects, you may find it useful to be able to redefine the
  555. position of this reference point when printing; the qualifiers
  556. \verb|/LEFT_MARGIN| and \verb|/TOP_MARGIN| implement this change.
  557. Some documents need so-called {\sl landscape orientation\/} for the paper,
  558. where the printed page is wider than it is high.  Assuming that the page
  559. layout parameters have been suitably redefined, the
  560. \verb+/ORIENTATION=LANDSCAPE+ qualifier can be used to tell \DVItoLN{}
  561. to print the document in this orientation.  (Note that single pages,
  562. or even parts of pages, can be printed in the opposite orientation, through
  563. use of suitable \verb|\special| sequences in the \TeX{} source file.)
  564. \subsubsection{Specifying a new Reference Point}
  565. The \verb|/LEFT_MARGIN=| and \verb|/TOP_MARGIN=| qualifiers (which may be
  566. abbreviated to just {\tt/LE=} and {\tt/TO=}) each require a single numeric
  567. value, followed by a two-letter abbreviation for what \TeX{} calls a
  568. \meta{physical unit}; this expresses the displacement of the reference point
  569. from the left-hand and top edges of the paper, respectively.
  570. The value may be given in any of \TeX's standard \meta{physical unit}s, with
  571. the addition of {\tt mi}, representing 1$\mu$m (micron), and {\tt px}, which
  572. represents 
  573. units of {\sl pixels}\footnote{see glossary}, the basic unit of measure on the
  574. LN03; there are 300 pixels to one inch (the LN03 can therefore print at a
  575. density of 90,000 $\mbox{dots}/\mbox{in}^2$) and so, as you might expect, the
  576. default values for these qualifiers are both {\tt 300px} for \TeX's default
  577. reference point; the same effect could be achieved by specifying this value
  578. as {\tt 1in} or {\tt25.4mm} or even as {\tt72.27pt}.
  579. \subsubsection{Specifying a Different Paper Orientation}
  580. Ordinarily, \DVItoLN{} produces its output assuming {\sl portrait\/}
  581. orientation for the paper (with the paper being higher than it is wide).
  582. However, you might wish to use different parameters to \LaTeX\
  583. (\verb|\textwidth|, {\it etc\/}), such that the paper is assumed to be in {\sl
  584. landscape\/} mode; it is then necessary to tell \DVItoLN{} that it
  585. should send re-orientation commands to the LN03.  This is specified by means
  586. of the \verb|/ORIENTATION=| qualifier, (which may be abbreviated to
  587. {\tt/OR=}), and takes the ``values'' {\tt PORTRAIT} or {\tt
  588. LANDSCAPE} ({\tt P} or {\tt L}); the default is {\tt PORTRAIT}. 
  589. \subsection{Including Graphics Images in your
  590. Document}\label{subsec:graphics}
  591. A local extension to \LaTeX{} at RMCS permits the \DVItoLN{} program to
  592. include graphic images within a printed document.  The images will typically
  593. have been captured from a graphical display by software which ``reads back''
  594. such an image to the host computer.  The only format supported at present
  595. for such an image dump requires that it be in DEC's `sixel' format; this is
  596. documented in the programmers' manuals for the LN03 printer and the VT240/1
  597. terminals.  Such files can be generated by the {\sf ReToS} program from
  598. sources written in ReGIS; provided that the correct device type is specified
  599. (\verb+LN03+ or \verb+LN03_PLUS+, as appropriate), the {\sf ReToS} output
  600. may be imported {\it verbatim}.
  601. To prepare \LaTeX{} to include such an image, include {\tt graphics} as an
  602. option to the {\tt\bs documentstyle} command; this will define  five new
  603. commands, the first four of which are as follows:
  604. \begin{description}
  605.     \item[{\tt\bs smallVT240}] Includes an image dump in a space 1.6inches
  606.     high and $2\frac23$ inches wide, suitable for a full-screen dump from a
  607.     VT240/1 terminal measuring $480\times800$ screen pixels, at 1:1 scaling
  608.     \item[{\tt\bs largeVT240}] For printing a dump at 2:1 scaling, occupying
  609.     3.2in$\times5\frac13$in
  610.     \item[{\tt\bs smallVis550}] For 1:1 scaled dump from a Visual 550
  611.     terminal, with $585\times768$ screen pixels, in a space measuring
  612.     1.95in$\times$2.56in 
  613.     \item[{\tt\bs largeVis550}] For printing a dump at 2:1 scaling,
  614.     occupying 3.9in$\times$5.12in
  615. \end{description}
  616. (The fifth command, \verb|\gino|, is described in \S~\ref{subsub:gino}
  617. below.)
  618. In each case the commands take one parameter, which must be the name of the
  619. sixel dump file (including any necessary file extension).  The commands ensure
  620. that a space of the appropriate size is left within the text (you will most
  621. probably use the commands within a {\tt figure} and/or {\tt picture}
  622. environment).  {\sf DVItoLN03} is passed the filename and instructed to
  623. treat the file as a sixel dump (by means of \TeX's {\tt\bs special} command)
  624. through the above macros.
  625. \begin{figure}[hbtp]
  626. \iffulldoc\centerline{\smallVis550{\ifrmcs TEX$BIB:\fi openclose.small}}\fi
  627. \caption{Visual 550 Screen Dump printed by the {\tt\bs smallVis550}
  628. Command}\label{fig:small-six}
  629. \end{figure}
  630. Figures~\ref{fig:small-six} and~\ref{fig:large-six} illustrate the utility of
  631. these commands; the dumps were taken from a Visual 550 terminal.
  632. \ifrmcs It is understood by the author that the Selenar SG640 
  633. terminals in the Computer
  634. Centre are also capable of performing screen dumps to the VAX; if anyone would
  635. care to implement a program to effect such a dump, appropriate commands can be
  636. added to the definitions in {\tt graphics.sty}\fi
  637. The sixel dump will be included {\it verbatim\/} within the resulting
  638. {\tt.LN3} file by \DVItoLN; it {\bf must} include the necessary {\tt DCS}
  639. (Device Control String) sequence to introduce the dump, and finish with the
  640. {\tt ST} (String Terminator) escape sequence.  Dumps for printing with the
  641. commands must specify the scaling through the third parameter of the  {\tt
  642. DCS} sequence, therefore the files will commence with `{\tt\ESC
  643. P9;0;1q}'\footnote{\ESC\ represents the `escape' character} for printing
  644. with the ``small'' commands, and `{\tt\ESC P9;0;2q}' for use with the
  645. ``large'' versions; see~\cite{DEC:LN03} for further details.
  646. \subsubsection{GINO Graphics}\label{subsub:gino}
  647. Thanks to the good offices of Sqn.~Ldr.~John {\sc Baggott}, a student on
  648. 2MESE course at RMCS, a program (\verb+GINOtoSIX+) is now available which
  649. will convert the metafile ({\tt SAVDRA}) output of GINO to a suitable sixel
  650. dump, ready for inclusion in your document with the
  651. \verb+\gino+\footnote{Also defined in the {\tt graphics} style option}
  652. command. The \verb+\gino+ command takes three parameters, thus:
  653. \begin{description} 
  654.   \item[] {\tt\bs
  655.   gino(\meta{width},\meta{height})\char`\{\meta{filename}\char`\}} 
  656. \end{description} where the \meta{width} and \meta{height} are expressed in
  657. terms of the {\sf picture} environment's current \verb+\unitlength+, and
  658. reserve an appropriately sized area of the page for the included image.
  659. The \verb+GINOtoSIX+ program is documented in
  660. appendix~\ref{appx:GINOtoSIX}.
  661. \begin{figure}[btp]
  662. \iffulldoc\centerline{\largeVis550{\ifrmcs TEX$BIB:\fi openclose.six}}\fi
  663. \caption{Visual 550 Screen Dump printed by the {\tt\bs largeVis550}
  664. Command}\label{fig:large-six}
  665. \end{figure}
  666. \section{Files Used and Generated by DVItoLN03}
  667. \subsection{The \DVI{} File}\label{sec:no-extension}
  668. This file, as already explained, is generated by \LaTeX{} and contains the
  669. commands to typeset the entire document; its device-independent
  670. format~\cite{TUGboat-DVI} means
  671. that it can be processed by different {\sf DVIto}\dots{} programs to permit
  672. driving many different output devices, from VDUs and dot-matrix printers, with
  673. lowish resolutions, through laser printers, with resolutions (usually) of 300
  674. dots per inch, right up to photo-typesetters, some of which have resolutions
  675. of 5,333$\frac{1}{3}$ dots per inch!
  676. \subsection{The {\tt .LN3} File}
  677. This file is generated by the {\tt DVILN03} command; the file {\it name\/} is
  678. the same as that specified for the \DVI{} file.  These \LN{} files
  679. tend to be large (hundreds of blocks long), and there is never any point in
  680. keeping them after printing (unless you want to print further copies
  681. immediately\footnote{Even this is to be deprecated; photocopying is
  682. faster, cheaper, and doesn't tie up the printer queue.}).  It is a good idea, therefore,
  683. to delete such files as soon as possible, since they can quickly consume your
  684. disk quota; the easiest way is by specifying the {\tt /DELETE} qualifier on
  685. the end of the {\tt TEXPRINT} command line.
  686. The {\tt /OUTPUT} qualifier may be used to give this output file a different
  687. file specification; this may be used to override the default action, which
  688. is to create the file in the current directory, with file extension `\LN{}'
  689. and the same name as the actual \DVI{} file opened.  Thus the qualifier
  690. could be used to divert the output to a scratch disk, such as ({\tt
  691. DISK\logsep SCRATCH:}).                            %%% SYSDEP
  692. This file starts off, as already mentioned in section~\ref{sec:font-load}, by
  693. downloading the {\sl glyphs}\footnote{see glossary} of the necessary
  694. characters to the LN03's font memory. The format of this part of the file
  695. conforms to DEC standard~180~\cite{DEC:FontFileFormat}. 
  696. \subsection{The {\tt .TYP} File}
  697. This file is \DVItoLN's equivalent of the log file generated by \LaTeX; it
  698. contains all the output (with some differences of format) that \DVItoLN{}
  699. sent to your terminal (details of font loads, {\it etc\/}) and some further
  700. information regarding the whereabouts in the file of the start of each page. 
  701. Assuming that the document prints satisfactorily, there is no point in
  702. keeping the {\tt .TYP} file, and so it should be deleted as soon as
  703. possible; however, if you believe that \DVItoLN{} is behaving anomalously,
  704. please keep this file to show \contact. 
  705. The default behaviour of \DVItoLN{} is to delete this file providing no
  706. messages were issued; however, if any warning or error messages {\em were\/}
  707. produced, the file will be retained automatically.  The \verb+/LOG+
  708. qualifier may be used to ensure retention of the {\tt.TYP} file;
  709. conversely, the {\tt/NOLOG} qualifier will {\em never\/} keep the file.
  710. The {\tt/LOG} qualifier may optionally take a file specification to override
  711. part or all of the default specification for the log file; if this is used,
  712. the file will always be retained. 
  713. \subsubsection{The {\tt /VERBOSE} Qualifier}\cbstart
  714. During operation, the program reports on the terminal the full specification
  715. of all files read (the input {\tt.DVI} file and any sixel files included
  716. through a \verb|\special| command).  In addition, for each font specified,
  717. it reports the name of the font, the magnification, and how many bytes were
  718. downloaded to the printer for that font.  Furthermore, it reports the total
  719. number of bytes downloaded for all the fonts printed.  To reassure users
  720. that the program hasn't died if it's processing a very large input file, it
  721. also indicates what stage of processing it's reached whilst finding the
  722. initial starting page and determining which glyphs are imaged from each
  723. font.
  724. As each page of \TeX{} output is processed, the contents of \TeX's
  725. \verb|\count0| to \verb|\count9| registers are output between square
  726. brackets, entirely analogously to \TeX's own behaviour.
  727. Some users/sites find this too much for them; by specifying
  728. \verb|/NOVERBOSE|, either explicitly on the command line, or by removing the
  729. line reading {\tt default} for this qualifier in the command-language
  730. definition {\tt.CLD} file, the majority of this output can be suppressed:
  731. only the name of the input file, the total download and individual page
  732. number messages will be output (unless a problem is encountered).
  733. \cbend
  734. \subsection{Font Files Read by DVItoLN03}
  735. For every individual {\sl font}, no matter at what ``point size'' it is used,
  736. \DVItoLN{} needs to read the relevant {\tt .TFM} file, which contains the
  737. ``\TeX{} Font Metrics''. This file will also have been read by \LaTeX{} when it
  738. was processing your {\tt .TEX} source, and is read again to ensure that the
  739. fonts have not been revised, which might otherwise lead to erroneous output. 
  740. Furthermore, every different {\it size\/} of each separate font requires a
  741. file describing the actual character ``rasters'', for each character's 
  742. glyph. This installation (\sitename) %%%                         SYSDEP
  743. uses packed ({\tt .PK}) format font
  744. files, which save many of the 100,000 disk blocks formerly occupied by
  745. \TeX's libraries when {\sl expanded pixel rasters\/} in {\tt .PXL} files
  746. were the norm; however, \DVItoLN{} is capable of using either (or both)
  747. forms of font file.  
  748. If your document referenced any {\sl virtual fonts\/}\footnote{see
  749. glossary}, then \DVItoLN{} will need to read the associated {\tt.VF}
  750. file(s)~\cite{TUGboat-VF}; the latter specifies how each character in the
  751. font is to be imaged, which might in turn require reference to other real or
  752. virtual  fonts (or even the {\em same\/} font; virtual fonts may be
  753. recursive!)
  754. \subsubsection{Directory for \TeX{} Font Metrics Files} The \TeX{} Font
  755. Metrics files ({\tt .TFM})~\cite{TUGboat-TFM} are read by all members of the
  756. \TeX{} family, and also by many DVI processing programs, including
  757. \DVItoLN{} and \DVItoVDU\@.  Just like these other programs, \DVItoLN{}
  758. needs to be able to read these files; the program is told  
  759. where to look through the \verb|/TFM_DIRECTORY| qualifier.  This will have
  760. been set up as appropriate by your \TeX{} administrator, and will most
  761. probably have the value \ifdollars \verb|TEX$FONTS|\footnote{This form goes
  762. against {\sl Digital's\/} recommendations regarding customer-assigned
  763. logical names, which should not contain dollar signs}\else
  764. \verb|TEX_FONTS|\fi.                           %%%                SYSDEP
  765. Ordinary users should {\bf never} have any requirement to use this qualifier
  766. on command lines, but should you have some peculiar requirement where it is
  767. necessary to read non-standard {\tt .TFM} files, refer to
  768. appendix~\ref{appx:private-fonts}.
  769. \subsubsection{Directories for {\tt .PK} Files} Most fonts in use at
  770. \sitename{} %%%                                                SYSDEP
  771. are in the packed font file format; all such files are stored here in the
  772. directory {\tt TEX\logsep ROOT:[FONTS.PK]}; the {\sl VMS\/} logical name
  773. {\tt TEX\logsep PK} %%%                                        SYSDEP
  774. has been defined to reference this directory. All magnifications of the same
  775. font appear in this single directory; they are differentiated from each
  776. other by the file type extension, which consists of a number followed by the
  777. letters `{\tt PK}'---the number $N$ for any given magnification $m$ is given
  778. by \[N=\lfloor(1.2^m\times R)+0.5\rfloor\] where $R$ is the output device's
  779. resolution in dots per inch and $\lfloor x\rfloor$ represents the floor
  780. operation, yielding the largest integer $<x$.
  781. Since the LN03 has a resolution of 300 dots per inch, this equation becomes
  782. \[N = \lfloor (300 \times 1.2^m) + 0.5 \rfloor\]  Therefore, an unmagnified
  783. Computer Modern Roman 10pt font would be found in {\tt TEX\logsep
  784. PK:CMR10.300PK}, whilst its \verb|\magstep 5| version would be in {\tt
  785. TEX\logsep PK:CMR10.746PK}.
  786. The \verb+/PK_FONT_DIRECTORY+ qualifier instructs the \DVItoLN{} program how
  787. to find these files, and has been assigned the default value
  788. {\tt TEX\logsep PK:}.    %%%                                    SYSDEP
  789. If you wish to access your own private font files, refer to
  790. Appendix~\ref{appx:private-fonts}.
  791. Alternatively, packed pixel font files may be held in a directory tree,
  792. as is done at \sitename{} %%%                                   SYSDEP
  793. with unpacked raster files; Appendix~\ref{sec:queues} provides the details.
  794. \subsubsection{Directories for {\tt .PXL} Files}
  795. Any expanded raster pixel files are stored in a directory tree with a
  796. ``pseudo-device'' {\tt TEX\logsep PXL\_ROOT:} as its root:  {\tt TEX\logsep
  797. DISK:[TEX.FONTS.PXL.]} is the definition used at \sitename{} for
  798. this logical name.  Below this root are directories with numerical ``names'';
  799. the value of the name $N$ for any particular font magnification $m$ may be
  800. derived as follows:\[N = \lfloor (1.2^m \times 5 \times R) + 0.5\rfloor\]
  801. where $R$ is the output device's resolution\footnote{The factor $5$ arises
  802. from the relationship between \TeX's default {\tt\bs magnification} of
  803. {\tt1000} and the default resolution of 200 dots per inch, which was the
  804. assumed resolution of all early font files}. Since the LN03 has a resolution
  805. of 300 dots per inch, this equation simplifies to \[N = \lfloor (1500 \times
  806. 1.2^m) + 0.5 \rfloor\] hence the unmagnified fonts are in directory {\tt
  807. TEX\logsep PXL\_ROOT:[1500]}; this translates to {\tt TEX\logsep
  808. DISK:[TEX.FONTS.PXL.1500]} at \sitename. Similarly, those at 
  809. \verb|\magstep 3| are in directory {\tt TEX\logsep PXL\_ROOT:[2592]}.
  810. The \verb+/PXL_FONT_DIRECTORY+ qualifier instructs the \DVItoLN{}
  811. program how to find these files; at \sitename, %%%                SYSDEP
  812. this has been assigned the default value {\tt TEX\logsep PXL\_ROOT:}.
  813. Alternatively, unpacked pixel font files may be held in a single flat
  814. directory, as is done at \sitename{} %%%                          SYSDEP
  815. with packed pixel files; Appendix~\ref{sec:queues} provides the details.
  816. \subsubsection{Directory for Virtual Font Files}
  817. The program needs to be able to read {\tt.VF} files for any virtual fonts
  818. used in the document; in fact, for {\em every\/} font referenced, the
  819. program checks firstly whether the font is virtual by looking for such a
  820. {\tt.VF} file: only if such a file cannot be found does the program attempt
  821. to find files containg raster information instead.
  822. The program looks for these files in the location associated with the
  823. \verb+/VIRTUAL_DIRECTORY+ qualifier; it may be found convenient to keep such
  824. files in the same directory as the \TeX{} Font Metrics.  At \sitename, this
  825. qualifier is given the value {\tt TEX\logsep FONTS:}, thus indeed placing
  826. them in the same directory. %%%                                  SYSDEP
  827. \ifrmcs\else
  828. If documents at \sitename{} never make use of virtual fonts, then the
  829. default should be made \verb+/NOVIRTUAL_DIRECTORY+ to gain a slight
  830. improvement in speed of processing.\fi
  831. \chapend
  832. \section*{Glossary of Terms}\markboth{GLOSSARY OF TERMS}{GLOSSARY OF TERMS}
  833. \addcontentsline{toc}{section}{Glossary}
  834. \begin{description}
  835.     \item[Aspect Ratio.]
  836.         (1) The ratio of the height of a pixel to its width.  Most laser
  837.         printers have a 1:1 aspect ratio; (2) The ratio of the height of a
  838.         character to its width.
  839.     \item[Duplex Printing.] 
  840.         A feature of such newer laser printers as the DEClaser
  841.         model~2200 (LN06),  in which the printer contains a mechanism for
  842.         mechanically turning over the sheet of paper after printing on one
  843.         side before imaging a second page onto its reverse, thus producing a
  844.         double-sided document.  (See also {\sl Tumbled Printing}.)
  845.     \item[Font {\rm or} Fount.]
  846.         A character set of a specified type face and size. Usually includes
  847.         upper- and lower-case letters, figures, punctuation marks, ligatures
  848.         and accents. 
  849.     \item[Glyph.]
  850.         The physical representation of a ``character'' on the printed page is
  851.         known as that character's {\sl glyph\/}; thus the glyph for italic `A'
  852.         ({\it A\/}) differs from that for the same character in bold face
  853.         ({\bf A}).
  854.     \item[Landscape Orientation.]
  855.         Printing with the lines of type running parallel with the long edge of
  856.         the paper, so that the paper when read is wider than it is high.
  857.     \item[Packed Pixel Files.]
  858.         In 1985, Tomas Rokicki designed this format, which is now capable of
  859.         being used by the majority of \TeXware.  By utilizing clever data
  860.         compression techniques, disk occupancy for font files is reduced by
  861.         50--80\%. 
  862.     \item[Page Orientation.]
  863.         With standard paper (either A4 [297mm$\times$210mm] or US
  864.         [11in$\times$8$\frac12$in]), printing can run parallel to either the
  865.         short or the long edges;  these orientations are known as portrait or
  866.         landscape, respectively.
  867.     \item[Pixel.]
  868.         \DVItoLN{} treats the sheet of paper on which a page will
  869.         appear as a two-dimensional array of tiny dots known as pixels
  870.         (short for ``picture elements''); pixels may be either black or
  871.         white. The number of such pixels per inch, horizontally {\it and}
  872.         vertically, is determined by the {\sl resolution\/} and {\sl aspect
  873.         ratio\/} of the printing device.  The total printable area of the
  874.         LN03 (on A4 paper) is $2400\times3400$ pixels.
  875.         \sitename{} %%%            SYSDEP
  876.         has a number of Digital LN03-Plus laser printers with a resolution
  877.         of 300 dots per inch and an aspect ratio of 1:1. 
  878.     \item[Portrait Orientation.]
  879.         Printing with the lines of type running parallel with the short edge of
  880.         the paper, the normal form for books, with the page higher than it
  881.         is wide.
  882.     \item[Raster.]
  883.         In the same way that a television screen is scanned as a {\sl
  884.         raster\/} of horizontal scan lines, so each character's glyph is built
  885.         up from rows of pixels.  The representation of any character can then
  886.         be said to occupy a certain number of {\sl rows\/} and {\sl
  887.         columns\/}.
  888.     \item[Recto Pages.] 
  889.         The right-hand pages in a book, like \ifodd\count0 this
  890.         one\else the one opposite\fi.
  891.     \item[Resolution.]
  892.         The number of picture elements (``pixels'') appearing per linear or
  893.         square inch (or suitable metric measure).
  894.     \item[Simplex Printing.] 
  895.         This is the normal mode of printing with laser printers,
  896.         except for those that can support {\sl Duplex Printing\/}; text and
  897.         graphics are imaged on one side of the paper only.  {\bf N.B.}
  898.         Before attempting to pass such sheets through the printer a second
  899.         time to print on the reverse of each sheet (``poor man's duplex''),
  900.         check the manufacturer's documentation to ensure that this will not
  901.         cause damage to your printer.
  902.     \item[Tumbled Printing.]
  903.         When printing in {\sl Duplex\/} mode (see above), the reverse of
  904.         each sheet will usually have its text oriented the same way round as
  905.         the front side, if the paper is turned over in the manner of reading
  906.         a book.  This (when combined with {\sl Portrait\/} orientation)
  907.         means that the pages can be bound along the long edge of the paper
  908.         to form a book.
  909.         Sometimes it is desirable to bind the document along the short edge
  910.         (like a flip-chart), or more often, along the long edge for
  911.         {\sl Landscape\/} oriented books; in this case, {\sl Tumble Mode
  912.         Printing\/} would be selected so that the {\it verso\/} pages are
  913.         printed `upside-down'---the double-page spread would then have both
  914.         pages, when bound, in the same apparent orientation.
  915.     \item[Unpacked Pixel Files.]
  916.         The original means of representing the fonts used by \TeX{} was in
  917.         the form of unpacked rasters.  Each row of pixels within the
  918.         character's raster is represented by the appropriate number of
  919.         32-bit words; therefore a glyph occupying 65 rows of 36 columns
  920.         would require {\em two\/} words per row (wasting 28 bits in each
  921.         row), and thus require a total of 130 words or 520 bytes.  In
  922.         addition, there are a number of other parameters required for each
  923.         character's glyph, so this character would occupy at least 540 bytes
  924.         of disk space. 
  925.     \item[Verso Pages.]
  926.         The left-hand pages in a book, like \ifodd\count0 the one
  927.         opposite\else this one\fi.
  928.     \item[Virtual Fonts.]
  929.         One of the extensions to \TeX, introduced by Knuth~\cite{TeX3} in
  930.         his major  enhancement of 1990 (V3), is the concept of virtual
  931.         fonts~\cite{TUGboat-VF}.  Whilst \TFM{} files exist in the usual way
  932.         for virtual fonts, and are used by \TeX{} in exactly the same manner
  933.         as those for ``real'' fonts, there are no associated pixel files. 
  934.         Instead, a {\tt.VF} file provides a mapping for each character in
  935.         the virtual font; the mapping for any single character might
  936.         reference one (or more) characters from some real font(s), or
  937.         perhaps construct a glyph from some pattern of horizontal and
  938.         vertical rules---{\tt.VF} files contain sequences of \meta{dvi
  939.         command}s for each glyph, which are interpreted by the output
  940.         driver.  Thus virtual fonts can contain, for example, accented
  941.         letters formed from a combination of two or more characters, but
  942.         treated by \TeX{} as single `letters', and hence capable of being
  943.         considered by \TeX's hyphenation routines.  Furthermore, since each
  944.         character can be `tuned' individually, better positioning of accents
  945.         on such things as upper-case letters can be achieved.
  946. \end{description}
  947. \chapend
  948. \appendix
  949. \section[Information for System Managers]{How to configure the Directories and
  950. set up a Printer Queue for an LN03}\label{sec:queues} 
  951. This appendix provides details for system managers configuring an LN03 into
  952. their system to support \TeXware.
  953. \subsection{Creating the Appropriate Directories}
  954. \DVItoLN{} will work with packed or unpacked pixel files, or a mixture
  955. of both. It does not support the use of generic font files, and is unlikely
  956. to, since that would require it to read the entire raster into memory to
  957. determine the bounding box size, whilst the other formats both include this
  958. information in the file, so the glyph's raster can be copied piecemeal.
  959. In common with other binary files used by \TeXware{} under VMS,
  960. such files {\em must\/} be organized as 512-byte fixed-length records: if
  961. you've got them in some other mode, such as Stream-LF or variable-length
  962. no-carriage-control, then either recreate them with a VMS implementation of
  963. {\sf GFtoPK, GFtoPX}, or fetch them from somewhere else that {\em does\/}
  964. have them in the right format.
  965. \subsubsection{Where to put Packed Pixel ({\tt.PK}) Files}
  966. At RMCS the {\tt.PK} files of all the fonts supported are placed in
  967. {\bf one} directory; this is referenced {\it via\/} the logical name
  968. {\tt TEX\logsep PK}, and the latter provided as the default value for the
  969. \verb+/PK_FONT_DIRECTORY+ qualifier\footnote{Not forgetting to include a
  970. `{\tt:}' at the end of the logical name; the qualifier provided {\em must\/}
  971. legally be capable of being prefixed to a partial file specification, which
  972. may contain a directory part} in the \verb+DVITOLN03.CLD+ command definition
  973. file.  Each font file should include the magnification and resolution
  974. indication in its file type extension.  On the system at RMCS,
  975. {\tt TEX\logsep PK} points to {\tt TEX\logsep ROOT:[FONTS.PK]},
  976. and looks like this: 
  977. {\small\tt\obeylines\obeyspaces
  978. Directory TEX\logsep ROOT:[FONTS.PK]
  979. $\vdots$
  980. CMBX10.300PK;1     CMBX10.329PK;1     CMBX10.360PK;1     
  981. CMBX10.432PK;1     CMBX10.518PK;1     CMBX10.622PK;1     
  982. CMBX10.746PK;1     CMBX10.896PK;1     \dots
  983. $\vdots$
  984. CMINCH.300PK;1     \dots
  985. $\vdots$
  986. CMR10.300PK;1      CMR10.329PK;2      CMR10.360PK;2      
  987. CMR10.432PK;1      CMR10.518PK;1      CMR10.622PK;1      
  988. CMR10.746PK;1      CMR10.896PK;1      CMR17.300PK;2      
  989. $\vdots$
  990. \noindent Other sites may prefer to put the font files for different
  991. magnifications into separate directories, in the fashion used at RMCS
  992. for {\em unpacked\/} pixel files (see below).  In this case, the value
  993. provided for the \verb+/PK_FONT_DIRECTORY+ qualifier, or by the equivalence
  994. string of whatever logical
  995. it references, would end with `{\tt.]}'.
  996. \subsubsection{Where to put Expanded Raster ({\tt.PXL}) Pixel Files}
  997. At RMCS all the unexpanded raster pixel files relating to each different
  998. magnification are gathered together into separate subdirectories, with
  999. the subdirectory ``name'' reflecting the magnification and resolution.
  1000. A pseudo-device
  1001. {\tt TEX\logsep PXL\_ROOT:}
  1002. is then defined such that these
  1003. subdirectories then appear as ``actual'' directories of the pseudo-device.
  1004. On our installation, we define the latter as follows:\begin{description}
  1005. \squash
  1006. \item[\prompt] 
  1007. {\tt DEFINE/TRANSLATION\_ATTRIBUTE=CONCEALED TEX\logsep PXL\_ROOT -}
  1008. \item[\cont] {\tt TEX\logsep DISK:[TEX.FONTS.PXL.]}
  1009. \end{description}
  1010. The \verb+/PXL_FONT_DIRECTORY+ qualifier is given this logical name
  1011. as its default value.  A listing of this directory might look like this:
  1012. {\small\tt\obeylines\obeyspaces
  1013. Directory TEX\logsep PXL\_ROOT:[000000]
  1014. 1200.DIR;1         1350.DIR;1         1500.DIR;1         
  1015. 1643.DIR;1         1800.DIR;1         2160.DIR;1         
  1016. 2592.DIR;1         3000.DIR;1         3110.DIR;1         
  1017. 3732.DIR;1         4479.DIR;1         5375.DIR;1         
  1018. 6450.DIR;1         7740.DIR;1         
  1019. Total of 14 files.
  1020. \noindent The files in the individual directories have file type {\tt.PXL};
  1021. that for the unmagnified fonts might look (in part) like this:
  1022. {\small\obeylines\obeyspaces\tt
  1023. Directory TEX\logsep PXL\_ROOT:[1500]
  1024. $\vdots$
  1025. AMSSMC10.PXL;1     AMSSMC40.PXL;1     BLACK.PXL;1        
  1026. CIRCLE10.PXL;3     CIRCLEW10.PXL;3    CMB10.PXL;1        
  1027. CMBSY10.PXL;1      CMBX10.PXL;1       CMBX12.PXL;1       
  1028. CMBX5.PXL;1        CMBX6.PXL;1        CMBX7.PXL;1        
  1029. CMBX8.PXL;1        CMBX9.PXL;1        \dots
  1030. $\vdots$
  1031. CMR10.PXL;3        
  1032. $\vdots$
  1033. \noindent The directory which contains the \verb|\magstep 3| files might
  1034. look like this:
  1035. {\small\obeylines\obeyspaces\tt
  1036. Directory TEX\logsep PXL\_ROOT:[2592]
  1037. $\vdots$
  1038. CMBX10.PXL;1       CMBX5.PXL;1        CMBX7.PXL;1        
  1039. $\vdots$
  1040. CMR10.PXL;1        
  1041. $\vdots$
  1042. \subsection{Modifying the Command Definition File}
  1043. The distributed installation kit for \DVItoLN{} includes a file {\tt
  1044. DVITOLN03.CLD} which defines the {\tt DVILN03} command and its qualifiers.
  1045. Since individual sites may have different mixtures and arrangements for
  1046. their packed and unpacked (if any) pixel files, and the commonest type of
  1047. output device in use, the sensible place to allow
  1048. for these changes is in this file.  Therefore it should be modified
  1049. to reflect local requirements in the definitions of the following
  1050. qualifiers: 
  1051. \begin{itemize}
  1052.     \item \verb|/DEVICE_TYPE|,
  1053.     \item \cbstart\verb|/PAPER_SIZE|,
  1054.     \item \verb|/(NO)VERBOSE|,\cbend
  1055.     \item \verb|/TFM_DIRECTORY|,
  1056.     \item \verb|/PK_FONT_DIRECTORY|,
  1057.     \item \verb|/PXL_FONT_DIRECTORY|, and
  1058.     \item \verb|/VIRTUAL_DIRECTORY|.
  1059. \end{itemize}
  1060. Furthermore, the line reading `{\tt image "TEX\logsep EXE:DVITOLN03"}' may
  1061. need to be changed to reflect the location of the program's executable image
  1062. at your site.  
  1063. The \verb|/DEVICE_TYPE| qualifier has its possible values defined by that
  1064. section of the \verb|DVITOLN03.CLD| file headed 
  1065. `\verb|define type PRINTERS|'\@.  Just
  1066. one of these values should be marked as `\verb|default|'; the distributed
  1067. version makes \verb|LN03| the default printer type.  \cbstart Similarly, the
  1068. \verb|/PAPER_SIZE| qualifier is set by marking the default
  1069. definition in the `\verb|define type PAPER_TYPES|' section as either
  1070. \verb|A4| or \verb|US|.\cbend
  1071. As described above, at RMCS we have our unpacked pixel files in a tree
  1072. structure,   whilst our packed files are all in a single directory,  with
  1073. logical names defined appropriately.  Therefore, the relevant section of our
  1074. {\tt DVITOLN03.CLD}
  1075. file looks like this:\ifdollars
  1076. \begin{verbatim}
  1077.     qualifier PK_FONT_DIRECTORY,
  1078.         negatable,
  1079.         default,
  1080.         value(default="TEX$PK:",type=$file)
  1081.     qualifier PXL_FONT_DIRECTORY,
  1082.         negatable,
  1083.         default,
  1084.         value(default="TEX$PXL_ROOT:",type=$file)
  1085. \end{verbatim}\else
  1086. \begin{verbatim}
  1087.     qualifier PK_FONT_DIRECTORY,
  1088.         negatable,
  1089.         default,
  1090.         value(default="TEX_PK:",type=$file)
  1091.     qualifier PXL_FONT_DIRECTORY,
  1092.         negatable,
  1093.         default,
  1094.         value(default="TEX_PXL_ROOT:",type=$file)
  1095. \end{verbatim}\fi
  1096. (Where the logical name {\tt TEX\logsep PK} is defined as
  1097. {\tt TEX\logsep ROOT:[FONTS.PK]} and {\tt TEX\logsep PXL\_ROOT} as
  1098. {\tt TEX\logsep DISK:[TEX.FONTS.PXL.]}\footnote{The latter cannot be 
  1099. written as {\tt TEX\logsep ROOT:[FONTS.PXL.]} because that would cause VAX
  1100. Record Management Services (RMS) to attempt to interpret the expanded string
  1101. {\tt TEX\logsep DISK:[TEX.][FONTS.PXL.][1500]\dots}!})
  1102. Modifications that you may wish to undertake are:\begin{itemize}
  1103.   \item Change either or both {\tt default=} strings to reflect the actual
  1104.   directory specification instead of using a logical name.
  1105.   \item If your site doesn't use one of these file classes at all, remove
  1106.   the line `\verb|default,|' from the relevant qualifier's definition.
  1107. \end{itemize}
  1108. At least one of these qualifiers {\em must\/} have a default or explicit value
  1109. provided, through the {\tt.CLD} file or a command-line qualifier; the
  1110. program cannot run without some source of pixel files.  If both formats of
  1111. pixel files are in use at a site, then the packed ones will be inspected
  1112. before any attempt to open unpacked files.
  1113. To make use of the {\tt DVILN03} command, each user must issue the DCL
  1114. command\footnote{Some sort of logical name or other means of expressing the
  1115. specification of the directory in which {\tt DVITOLN03.CLD} resides will
  1116. most probably be required; at RMCS, we keep all such command definition
  1117. files in the directory
  1118. to which the logical name {\tt TEX\logsep EXE:} refers}%%%                SYSDEP
  1119. \begin{description}
  1120.   \item[\prompt] \verb|SET COMMAND DVITOLN03|
  1121. \end{description} to read the (possibly revised) command definition file; \TeX
  1122. nicians can do this for their users automatically by including the above
  1123. \verb|SET COMMAND| in a command procedure that all users of \TeX{} execute.
  1124. Even better (because the VMS Command Definition Utility isn't the fastest of
  1125. beasts!) is for the system manager to add the {\tt DVILN03} command to 
  1126. \verb|SYS$SHARE:DCLTABLES.EXE| so that the command is always 
  1127. available on a system-wide basis; do this by issuing the
  1128. command:\begin{description} \squash
  1129.   \item[\prompt]\verb|SET COMMAND DVITOLN03 -|
  1130.   \item[\cont] \verb|/TABLE=SYS$COMMON:[SYSLIB]DCLTABLES.EXE -|
  1131.   \item[\cont] \verb|/OUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXE|
  1132. \end{description}
  1133. This command can only be executed if you have write access
  1134. to the directory \verb+SYS$SHARE+\footnote{Note that this section now recommends
  1135. placing the revised tables in {\tt SYS\$COMMON}, so that separate nodes in a
  1136. cluster don't end up running different versions of the tables; this would
  1137. not apply, of course, if \TeX{} and its friends were not installed
  1138. cluster-wide.}
  1139. \subsection{Creating a Forms Library for use with the Queue}
  1140. The formatting imposed by the VAX printer
  1141. symbiont is controlled by {\sl forms\/}; 
  1142. the {\tt PRINT} command takes a
  1143. {\tt /FORM=} qualifier which may be used to specify the form to be used when
  1144. printing any particular file.  Each form defines the printable size of each
  1145. page, and may specify that certain {\sl setup files\/} be output to the
  1146. printer at the start of each job and/or page.  A separate library of such
  1147. setup files may be specified for each queue.
  1148. A couple of such setup files will be required for use with an LN03, and at
  1149. this installation they are held in the file \verb|SYS$LIBRARY:LN03CTL.TLB|
  1150. which is a  text library\footnote{It is a requirement of the printer
  1151. symbiont that forms libraries be in directory {\tt SYS\$LIBRARY:}}.  It is
  1152. necessary, therefore, to create such a library; this need be done only
  1153. once:\begin{description} 
  1154.     \item[\prompt] \verb|LIBRARY/CREATE/TEXT SYS$LIBRARY:LN03CTL|
  1155. \end{description}
  1156. For printing {\tt .LN3} files, at least the following two setup
  1157. files will be required:
  1158. \begin{enumerate}
  1159.     \item {\tt RESET.TXT} --- should contain the escape sequence to reset
  1160.     the LN03 to its factory settings, thus clearing any error conditions.
  1161.     This may be just the two character escape sequence `\ESC\verb|c|',
  1162.     although proper resetting of an LN03-Plus requires
  1163.     `\ESC\verb+[!p+\ESC\verb|c|' to ensure that Tektronix mode is correctly
  1164.     cancelled. 
  1165.     \item {\tt PORTRAIT.TXT} --- should contain escape sequences to use the
  1166.     LN03 in portrait orientation, using the appropriate paper size; at RMCS
  1167.     we use European A4 paper in extended portrait format; an appropriate
  1168.     sequence would be: `\ESC\verb*|[?22 J|\ESC\verb|[16m|%
  1169.                      \ESC\verb|(B|\ESC\verb|)0|\ESC\verb|*<|\ESC\verb|+>|'.
  1170.     This setup sequence actually is required only for
  1171.     non-\TeX{} use of the printer; it  defines the paper area to be used,
  1172.     selects a standard (DEC monospaced) font, and designates the G0\dots G3
  1173.     character sets.  None of this is strictly necessary for use by \TeX,
  1174.     since \DVItoLN{} puts appropriate escape sequences into the {\tt .LN3}
  1175.     file to control all these features; however, such a setup file would be
  1176.     useful for formatting ordinary (non-\LaTeX) text printing on the LN03. 
  1177. \end{enumerate}
  1178. It may be convenient to define other setup files such as {\tt LANDSCAPE.TXT},
  1179. {\tt ELITE.TXT}, {\it etc\/}. 
  1180. \subsection{Defining Forms for use with LN03 Queue}
  1181. Only one form is required specifically for printing \LN{} files; other
  1182. forms may be defined for convenience when printing other files on the LN03.
  1183. At RMCS, this form is called {\tt PLOT\logsep FORM}, since it is also used to
  1184. ``format'' for printing files which constitute screen dumps taken from
  1185. graphics terminals.  It has been arbitrarily assigned as form number 83, and
  1186. the example below uses this name and number.  Of course, such nomenclature
  1187. needs to be assigned suitably at each site by the system manager.%%%     SYSDEP
  1188. The following command would generate an appropriate form; the footnotes
  1189. detail items to which particular attention should be paid:
  1190. {\small\begin{description}\squash
  1191.     \item[\prompt] \verb|DEFINE/FORM-|
  1192.      \item[\cont]
  1193.        \verb|/DESCRIPTION="Portrait 66x80 without WRAP for laser printers"-|
  1194.      \item[\cont] \verb|/LENGTH=66-|
  1195.      \item[\cont] \verb|/MARGIN=(BOTTOM=0,LEFT=0,RIGHT=0,TOP=0)-|\footnote{No
  1196.                                    margins around the text; these could
  1197.                                    introduce spurious spaces,  which might
  1198.                                    even be in the middle of an escape
  1199.                                    sequence} 
  1200.      \item[\cont] \verb|/STOCK=A4-|\footnote{Ensure that print jobs will
  1201.                                    only be released to the printer when it
  1202.                                    contains the correct paper type.} 
  1203.      \item[\cont] \verb|/NOTRUNCATE-|\footnote{{\tt /NOTRUNCATE/NOWRAP} to
  1204.                                      ensure that the long character records
  1205.                                      of the \LN{} files don't get broken up
  1206.                                      by the symbiont}
  1207.      \item[\cont] \verb|/NOWRAP-|
  1208.      \item[\cont] \verb|/WIDTH=80-|\footnote{The width is still specified as
  1209.                                    the maximum printable with the printer's
  1210.                                    in-built fonts, in order that any flag
  1211.                                    pages printed are of the correct width}
  1212.      \item[\cont] \verb|/SETUP=(RESET,PORTRAIT)-|\footnote{Invoke the
  1213.                                                  appropriate setup files
  1214.                                                  when the form is used}
  1215.      \item[\cont] {\tt\ \ \ PLOT\logsep FORM  83}
  1216. \end{description}}
  1217. \subsection{Setting the ``Terminal's'' Physical Characteristics}
  1218. The first step, assuming that a LN03 or LN03-Plus printer has been connected
  1219. to a particular terminal port of the {\sl VAX}, is to configure that port;
  1220. at RMCS the terminal has been connected to
  1221. \verb|_TXA4:|, %%%                                          SYSDEP
  1222. but this will obviously be installation-dependent.  Therefore the examples
  1223. refer to the terminal line through the DCL symbol  \verb|LASER_TERM|, this
  1224. can be equated to the real device by means of a DCL string assignment such
  1225. as the following:\begin{description}           %%%          SYSDEP 
  1226.     \item[\prompt] \verb|LASER_TERM = "_TXA4:"|
  1227. \end{description}
  1228. Therefore, we will need to issue a command somewhat like this (refer to the
  1229. footnotes for the {\it raison d'\^etre\/} behind some of these settings):
  1230. \begin{description}\squash
  1231.     \item[\prompt]\verb|SET TERMINAL-|
  1232.     \item[\cont] \verb|/PERMANENT-|\footnote{Note that this has to be
  1233.                             done to the {\sl permanent\/} characteristics}
  1234.     \item[\cont] \verb|/DEVICE_TYPE=LN03-|\footnote{We set the terminal
  1235.                             device type, using {\tt /DEVICE\_TYPE}\@.  This
  1236.                             should take care of things like {\tt /FORM},
  1237.                             {\tt /TAB}, {\it etc}, although we can't do any
  1238.                             harm by mentioning these explicitly!}
  1239.     \item[\cont] \verb|/FORM-|
  1240.     \item[\cont] \verb|/TAB-|
  1241.     \item[\cont] \verb|/SPEED=19200-|\footnote{To improve the speed at
  1242.                             which documents are printed, it is best if  the
  1243.                             printer is set up to its fastest speed,
  1244.                             19,200Bd}
  1245.     \item[\cont] \verb|/WIDTH=255-|\footnote{Typically, {\tt .LN3} files
  1246.                             contain records up to about 180  characters long
  1247.                             (including escape sequences); therefore we don't
  1248.                             want the terminal driver to interrupt these,
  1249.                             and insert spurious CR-LF pairs,
  1250.                             so we set an artificially high {\tt /WIDTH} and
  1251.                             also ensure that the ``terminal'' is set {\tt
  1252.                             /NOWRAP}}
  1253.     \item[\cont] \verb|/NOWRAP-|
  1254.     \item[\cont] \verb|/PAGE=66-|\footnote{Other (non-{\tt.LN3}) files
  1255.                             printed on the device need to use only  66 lines
  1256.                             per page}
  1257.     \item[\cont] \verb|/NOBROADCAST-|\footnote{We don't want operator
  1258.                             messages to terminals to get to the printer,  so
  1259.                             set it {\tt /NOBROADCAST}}
  1260.     \item[\cont] \verb|/NOMODEM-|
  1261.     \item[\cont] \verb|/NOHANGUP-|
  1262.     \item[\cont] \verb|/NOECHO-|\footnote{Any input from the printer
  1263.                             (possible error status reports) should  {\bf
  1264.                             not} be echoed back to it, so set the terminal
  1265.                             {\tt /NOECHO}}
  1266.     \item[\cont] \verb|/DMA-|
  1267.     \item[\cont] \verb|   'LASER_TERM'|
  1268. \end{description}
  1269. Most probably we would arrange for these operations to be performed whenever
  1270. the {\sl VAX\/} is booted, by including the commands in [a command procedure
  1271. which is invoked from within] \verb|SYS$MANAGER:SYSTARTUP_V5.COM| 
  1272. Now that we've set the characteristics of the terminal line connected to the
  1273. LN03 we need to associate it with a print queue (for transparent spooling,
  1274. {\it e.g.\/} if someone types the command \verb|COPY filename _TXA4:|); in
  1275. this example, we're configuring the queue {\tt SEES\logsep LASER}, using device
  1276. \verb|SYS$SYSDEVICE:| for spooling:--
  1277. \begin{description}\small
  1278. \item[\prompt]
  1279. {\tt SET DEVICE/SPOOLED=(SEES\logsep LASER,SYS\$SYSDEVICE) 'LASER\_TERM'}
  1280. \end{description}
  1281. Finally, we are ready to create and start the printer queue; we associate the
  1282. appropriate ({\tt PLOT\logsep FORM}) default form with the queue, for use with
  1283. transparent spooling printing, and arrange for the appropriate setup file to
  1284. be used to clear the queue between each job:--
  1285. \begin{description}\small\squash
  1286. \item[\prompt]\verb|INITIALIZE/QUEUE-|
  1287.       \item[\cont] \verb|/NOENABLE_GENERIC-|
  1288.       \item[\cont] \verb|/NOBATCH-|
  1289.       \item[\cont] {\tt /FORM=PLOT\logsep FORM-}
  1290.       \item[\cont] \verb|/NORETAIN-|
  1291.       \item[\cont] \verb|/LIBRARY=LN03CTL-|
  1292.       \item[\cont] \verb|/SCHEDULE=NOSIZE-|
  1293.       \item[\cont]
  1294.         \verb|/SEPARATE=(NOBURST,FLAG=ONE,NOTRAILER,RESET=(PORTRAIT))-|%
  1295.         \footnote{Note that the {\tt RESET} module is not specified here; if
  1296.         it were, the symbiont would insert a spurious blank page after each
  1297.         job}
  1298.       \item[\cont] \verb|/START-|
  1299.       \item[\cont] {\tt /DEFAULT=(NOFEED,NOFLAG,FORM=PLOT\logsep FORM)-}
  1300.       \item[\cont] \verb|/ON='LASER_TERM'-|
  1301.       \item[\cont] \verb|/RECORD_BLOCKING-|
  1302.     \item[\cont] {\tt\ \ \ SEES\logsep LASER}
  1303. \end{description}
  1304. \newpage
  1305. \section{{\tt DVILN03} Command Qualifiers}\label{sec:qualifiers}
  1306. As already described, the {\tt DVILN03} command takes \cbstart nineteen
  1307. \cbend
  1308. qualifiers; their functions are as follows:\begin{description}
  1309.     \item[\tt /STARTING\_PAGE=\meta{page\_string}] Takes a string-valued
  1310.         item which specifies  the number of the first page to be processed. 
  1311.         The format of this string may be defined, using BNF notation, as
  1312.         follows:
  1313.         \begin{itemize}
  1314.         \item[] \meta{page\_string} ::= \meta{string\_item} $|$
  1315.                      \meta{page\_string}{\tt.}\meta{string\_item}
  1316.         \item[] \meta{string\_item} ::= {\tt*} $|$ \meta{integer}
  1317.         \end{itemize}
  1318.         The default is `{\tt *}', which matches any page number, and hence
  1319.         will commence by processing the first page in the file.  Each
  1320.         successive \meta{string\_item} is used to attempt matches with each
  1321.         succeeding one of \TeX's counters \verb|\count0| \dots
  1322.         \verb|\count9|; the first of these is by convention used for the
  1323.         page number. Successive counters may be used for special effects,
  1324.         for example, to start printing at the first page whose
  1325.         \verb+\count0+ is 3 and \verb+\count3+ is 6, one could use
  1326.         \verb+/STARTING_PAGE=3.*.*.6+. 
  1327.     \item[\tt /NUMBER\_OF\_PAGES=\meta{positive\_integer}] Takes a value
  1328.         which  indicates the total number of pages to be printed, including
  1329.         the \verb|STARTING_PAGE|\@.  The default value (of {\tt 10000000})
  1330.         is normally large enough to print the whole of a document!
  1331.     \item[\tt /TOP\_MARGIN=\meta{dimension}] Specifies how far down
  1332.         from the top edge of the paper the reference point is  to be placed. 
  1333.         The value may be given in any of \TeX's \meta{physical unit}s ({\tt
  1334.         pt sp pc in cm mm dd cc}), with the addition of {\tt mi} and {\tt
  1335.         px}, and the default value (of {\tt 300px}) places the reference
  1336.         point at the conventional one inch from the top edge.  
  1337.     \item[\tt /LEFT\_MARGIN=\meta{dimension}] Specifies how far across from
  1338.         the left edge of  the paper the reference point  is to be placed. 
  1339.         The value may again be given in any \meta{physical unit}, and the
  1340.         default value (of {\tt 300px}) places the reference point at the
  1341.         conventional one inch from the left edge. 
  1342.     \item[\tt /ORIENTATION] Takes the values {\tt PORTRAIT} or {\tt
  1343.         LANDSCAPE} and specifies in which orientation the {\tt .LN3} file is
  1344.         to initialize the LN03.  Unless you have taken measures to change
  1345.         \LaTeX's assumptions about the paper size (by changing such page
  1346.         layout parameters as \verb+\textheight+), use of
  1347.         \verb|/ORIENTATION=LANDSCAPE| will lead to text overflowing the page.
  1348.     \item[{\tt/\rm[\tt NO\rm]\tt LOG}] Ordinarily, \DVItoLN{} will delete
  1349.         the log file ({\tt .TYP}) provided no anomalies of any form were
  1350.         detected. However, if the program issued {\em any\/} error or
  1351.         warning messages, the file will be retained for later perusal.  By
  1352.         specifying {\tt/LOG}, we can force the program always to retain the
  1353.         file, whilst {\tt/NOLOG} will always discard the file, even if
  1354.         errors/warnings were issued.
  1355.         Optionally, the {\tt/LOG} qualifier can take a value, which can be a
  1356.         complete or partial file specification to override the defaults
  1357.         which normally apply to this file.  For example,
  1358.         \begin{description}
  1359.             \item[\prompt] \verb|DVIL/LOG=.DVI_LOG xx|
  1360.         \end{description}
  1361.         would
  1362.         create the log file as \verb+XX.DVI_LOG+, in the current directory,
  1363.         instead of as \verb+XX.TYP+.  Even if there were no errors, the log
  1364.         file would be retained after \DVItoLN{} had finished its
  1365.         processing.
  1366.     \item[{\tt/\rm[\tt NO\rm]\tt VERBOSE}] \cbstart If \verb|/NOVERBOSE| is
  1367.     specified,  messages indicating progress during the initial scans of
  1368.         the input file are suppressed, as are those showing the sizes of
  1369.         individual fonts downloaded, and any sixel files read by a
  1370.         \verb|\special| command.\cbend
  1371.     \item[\tt /OUTPUT] This qualifier, if used, must specify a partial or
  1372.         complete file specification to override the defaults for the \LN{}
  1373.         file; for example\begin{description}
  1374.             \item[\prompt] \verb|DVIL/OUTPUT=WORK$DIR:SILK_PURSE SOWS_EAR|
  1375.         \end{description}
  1376.         would direct the output to \verb+SILK_PURSE.LN3+ in
  1377.         directory \verb+WORK$DIR:+ (whatever that might be) instead of to
  1378.         \verb+SOWS_EAR.LN3+ in the current directory.
  1379.     \item[\tt /DEVICE\_TYPE=\meta{device name}] Specifies the type of
  1380.         printer  on which the output file is intended to be printed; at
  1381.         \sitename, the default value for this qualifier is 
  1382.         \verb|LN03|. %%%                                      SYSDEP        
  1383.         Other possible values are \verb|LN05| and \verb|LN06|; certain other
  1384.         combinations of the next three qualifiers may only be specified in
  1385.         association with suitable values for this qualifier.
  1386.     \item[\tt/PRINT\_MODE=(\meta{modelist})] Specifies whether the printer
  1387.         shall  print \verb|SIMPLEX| (one side of paper only) or
  1388.         \verb|DUPLEX| (on both sides of the paper: with the LN03
  1389.         and LN05 printers, \verb|DUPLEX| may only be specified in
  1390.         conjunction with the \verb|MASTER| mode.)  For duplex printing, the
  1391.         user may in addition specify whether the reverse side of each sheet
  1392.         shall be printed ``right way up'' (\verb|NORMAL|) or ``upside-down''
  1393.         (\verb|TUMBLED|); tumbled output can be useful for generating a
  1394.         document that's intended to be bound along its short edge (in
  1395.         portrait orientation).
  1396.         The \verb|MASTER| mode is only of use in conjunction with
  1397.         \verb|DUPLEX|; it causes blank pages to be generated when necessary,
  1398.         but all output appears printed on one side of the paper only---since
  1399.         blank pages are interspersed as necessary, the resultant output may
  1400.         be readily photocopied into a double-sided document.
  1401.         To specify more than one mode with this qualifier, enclose a list of
  1402.         modes, separated by commas, within parentheses; for example:
  1403.         \begin{itemize}
  1404.         \item[]\verb|/PRINT_MODE=(DUPLEX,NORMAL,MASTER)|
  1405.         \end{itemize}
  1406.     \item[{\tt /\rm[\tt NO\rm]\tt DUPLEX\_BY\_PAGE\_NUMBERS}] This qualifier
  1407.         is present by default, but only has any effect when \verb|DUPLEX| is
  1408.         specified within the \verb|PRINT_MODE| qualifier list; it causes a
  1409.         blank page to be 
  1410.         ejected whenever two even-numbered pages follow each other, and also
  1411.         when two odd-numbered pages follow each other; thus odd-numbered
  1412.         pages always appear on the front of a printed sheet, and even-%
  1413.         numbered ones on the reverse.  Printers (the people, not the
  1414.         machines!) refer to such pages as {\it recto\/} and {\it verso},
  1415.         respectively, since the odd pages appear on the right, and the even
  1416.         ones on their reverse (the left). Note that page~0 is treated,
  1417.         exceptionally, as an odd-numbered page, so that it will appear on
  1418.         the right, since such pages often form the title or cover page of a
  1419.         document.
  1420.         Note that specifying \verb|/NODUPLEX_BY_PAGE_NUMBERS| causes both
  1421.         sides of every sheet (except, possibly, the last) to be printed; no
  1422.         blank pages will be interspersed.
  1423.     \item[\tt/FEED\_TRAY=(\meta{traylist})]  With the LN06, it is possible
  1424.         to specify from which of its feed trays paper shall be fed; such
  1425.         specifications may apply to all the sheets printed, or the first
  1426.         sheet may be specified to be taken from a different source compared
  1427.         with that used for the subsequent sheets.  The syntax requires
  1428.         either one entry, {\tt ALL=\meta{traytype}}, or either 
  1429.         {\tt FIRST=\meta{traytype}} and/or {\tt REST=\meta{traytype}}: the
  1430.         \meta{traytype}s can be any one of:
  1431.         \begin{itemize}
  1432.         \item \verb|DEFAULT_TRAY|,
  1433.         \item \verb|TOP_TRAY|,
  1434.         \item \verb|BOTTOM_TRAY|,
  1435.         \item \verb|ENVELOPE_TRAY|,
  1436.         \item \verb|MANUAL_FEED|
  1437.         \end{itemize}
  1438.         \noindent{\sl Example:\/}
  1439.         \verb|/FEED_TRAY=(FIRST=TOP_TRAY,REST=BOTTOM_TRAY)|
  1440.         The values \verb|TOP_TRAY| and \verb|MANUAL_FEED| may be specified
  1441.         when using the LN05 (DEClaser~2100) printer; the program doesn't yet
  1442.         support the optional 1000-sheet capacity tray that may be fitted to
  1443.         the LN05 and LN06 (mainly because the author hasn't discovered how
  1444.         to address it!) 
  1445.         Tray selection is not supported, of course, on the original LN03
  1446.         printer.
  1447.     \item[\tt/HFUZZ=\meta{dimension}]  Control the distance by which text
  1448.         must exceed the right margin (as defined by \TeX{} in the \DVI{}
  1449.         file) before \DVItoLN{} complains that `{\tt Page wider than TeX
  1450.         reported by $x$pt}'.
  1451.         When \TeX{} generates a \DVI{} file, it
  1452.         includes in that file information regarding the maximum width and
  1453.         depth of the pages created: when \DVItoLN{} processes the \DVI{}
  1454.         file, it will produce (and it always has produced) warning messages
  1455.         if any characters exceed these limits.  Ordinarily, such excursions
  1456.         ``beyond the margins'' will not occur (at least, not without \TeX{}
  1457.         having issued an `{\tt overfull \bs.box}' warning itself), but some
  1458.         macro packages {\em do\/} permit \TeX{} to exceed the
  1459.         boundaries\footnote{For example, the output of {\sc Weave}, when
  1460.         formatted by the {\tt webmac} macros, permits lines of formatted
  1461.         {\sc Pascal} code to exceed the right-hand margin by up to 10pt.}.
  1462.         By using this qualifier with some suitable dimension, such messages
  1463.         can be suppressed; however, you should only use this if you truly
  1464.         are being overloaded by such messages, since the default is intended
  1465.         to inform you that \TeX{} didn't do a good job of the setting, and
  1466.         there really {\em will\/} be something sticking out into the margin.
  1467.         The default value ({\tt100sp}) corresponds to that formerly
  1468.         `hard-wired' into the program: this is an invisibly small distance,
  1469.         approximately equivalent to the wavelength of visible light(!) but
  1470.         is large enough to absorb any rounding errors that may have
  1471.         occurred.
  1472.     \item[\tt/VFUZZ=\meta{dimension}] This is analogous to the \verb+/HFUZZ+
  1473.         qualifier above, but takes care of those occasions on which \TeX{}
  1474.         has set text below the bottom of the area that it has notified as
  1475.         being the maximum depth of the page; the related warning message
  1476.         from \DVItoLN{} is `{\tt Page deeper than TeX reported by
  1477.         $y$pt}'.  The author has never found any circumstances under which
  1478.         \TeX{} does this, but the qualifier is available for anyone who does
  1479.         suffer from this warning!  Once again, the default value for the
  1480.         qualifier is {\tt100sp}.
  1481.     \item[]{\sl The following qualifiers should never need to be used by
  1482.     ordinary users; the information below is mainly intended to help system
  1483.     managers:} 
  1484.     \item[\tt /PK\_FONT\_DIRECTORY] This must specify a directory (or
  1485.         directory tree) in which the packed pixel files (if used) are to be
  1486.         found.  Directory trees are indicated by having `{\tt.]}' as the
  1487.         last two characters of the ``directory'' specification.  A logical
  1488.         name may be given for this qualifier, provided it resolves to an
  1489.         appropriate directory specification; do remember to include a
  1490.         terminating `{\tt:}', because the qualifier itself is used verbatim
  1491.         as a prefix to the file specification for each font file.  If a
  1492.         multi-valued logical name is used, the equivalence strings must {\em
  1493.         all\/} reference single directories, or must {\em all\/} reference
  1494.         directory trees; only the first equivalence string is examined to
  1495.         determine whether a flat or tree structure is being used.  The {\tt
  1496.         DVITOLN03.CLD} command definition file provided has the default
  1497.         value {\tt TEX\logsep PK:} for this qualifier. 
  1498.     \item[\tt /PXL\_FONT\_DIRECTORY] This specifies the directory (or
  1499.         directory tree) in which unpacked pixel raster files may be found,
  1500.         if used.  The same rules regarding use of logical names apply here
  1501.         as to the previous qualifier.  The {\tt.CLD} file provided gives
  1502.         this a default value of {\tt TEX\logsep PXL\_ROOT:}.
  1503.     \item[\tt /TFM\_DIRECTORY] 
  1504.         This specifies the directory (or directories)
  1505.         in which the \TeX{} Font Metrics (\TFM) are to be found by the
  1506.         program.  The distributed version of the {\tt DVITOLN03.CLD} file
  1507.         has {\tt TEX\logsep FONTS:} as the default value for this qualifier.
  1508.     \item[\tt /VIRTUAL\_DIRECTORY] This specifies the directory (or
  1509.         directories) in which Virtual Font ({\tt.VF}) files are to be found
  1510.         by the program.  The distributed version of the {\tt DVITOLN03.CLD}
  1511.         file has {\tt TEX\logsep FONTS:} as the default value for this
  1512.         qualifier, thus placing {\tt.VF} files in the same directory as the
  1513.         \TFM{} files.  If virtual fonts are not in use, remove the line
  1514.         `\verb|default,|' from the definition of this qualifier.
  1515.     \item[\tt/PAPER\_SIZE] \cbstart This qualifier must have one of the
  1516.     values  (defined in the \verb|PAPER_TYPES| section of the {\tt.CLD}
  1517.         file) specified as default.  The value ({\tt A4} or {\tt US}) should
  1518.         reflect the setting of the paper size switch at the rear of the
  1519.         printer.  As might be expected, the values prepare the program to
  1520.         use European ($210\times297$mm) or US Letter ($8\frac12\times11$in)
  1521.         paper, respectively.\cbend
  1522. \end{description}
  1523. \chapend
  1524. \section{How to use your own Fonts with \TeX\ and
  1525. DVItoLN03}\label{appx:private-fonts}  
  1526. Ordinary users should {\bf never} have any requirement to use the qualifiers
  1527. that select the location of the \TFM\ or pixel raster files; exceptionally,
  1528. however, if you need to use a special font that doesn't otherwise exist in
  1529. the standard directories, these qualifiers can be used, in conjunction with
  1530. process logical names, to permit access to the user's own font(s) as well as
  1531. the standard ones.
  1532. First of all, both \TeX{} itself and \DVItoLN{} will require access to the
  1533. \TeX{} Font Metrics; as already described, these normally reside in a
  1534. directory to which the logical name {\tt TEX\logsep FONTS}
  1535. refers; one could, of course, simply redefine this
  1536. logical name to point to the new fonts, but then neither \TeX{} nor
  1537. \DVItoLN{} would be able to locate the {\em standard\/} fonts.  So one might
  1538. define what {\sl Digital\/} call a search-list (but the author prefers to
  1539. call a multi-valued logical name), like this:
  1540. \begin{description}
  1541.     \item[\prompt] {\tt DEFINE MY\_FONTS [MY\_DIR.TFM],TEX\logsep FONTS}
  1542. \end{description}
  1543. Then to run \LaTeX, one would have to say:
  1544. \begin{description}
  1545.     \item[\prompt] \verb|LATEX/FONT_DIRECTORY=MY_FONTS: MY_FILE|\footnote{Note
  1546.                             the `{\tt:}' after the logical name; whatever is
  1547.                             provided as the value for the
  1548.                             {\tt/FONT\_DIRECTORY} qualifier must legally be
  1549.                             capable of being prefixed to a file
  1550.                             specification}
  1551. \end{description}
  1552. This will allow \LaTeX{} to access both the standard and your own fonts;
  1553. since your fonts precede the standard ones in the search list, \TFM{} files
  1554. will be taken from your directory in preference to any of the same name that
  1555. might already be in the standard location.
  1556. To run \DVItoLN, it must have access not only to the \TFM{} files, but also
  1557. to the pixel raster files (either packed or unpacked).  Whichever file
  1558. directory organization has been chosen for these (and packed and unpacked
  1559. rasters can utilize different organizations), the pixel files for your
  1560. private fonts {\em must\/} have the same organization.  Therefore, if you
  1561. have only packed pixel files, and the standard fonts are arranged in a flat
  1562. directory, referenced by the logical {\tt TEX\logsep PK},
  1563. you might make the following definition:
  1564. \begin{description}
  1565.     \item[\prompt] {\tt DEFINE MY\_PK\_FILES [MY\_DIR.FONTS.PK],TEX\logsep PK}
  1566. \end{description}
  1567. Alternatively, or additionally, if you have unpacked pixel rasters in a
  1568. rooted directory structure, the following definition might suffice, assuming
  1569. that the standard fonts are accessible through 
  1570. {\tt TEX\logsep PXL\_ROOT}:
  1571. \begin{description}
  1572.     \item[\prompt]
  1573.         {\tt DEFINE MY\_PXL\_FILES [MY\_DIR.FONTS.PXL.],TEX\logsep PXL\_ROOT}
  1574. \end{description}
  1575. Then to run \DVItoLN, providing it with access to the \TFM{} and pixel files
  1576. of both your own and the standard fonts, it would be necessary to invoke the
  1577. program like this:
  1578. \begin{description}\squash
  1579.     \item[\prompt] \verb|DVILN03 /TFM_DIRECTORY=MY_FONTS:|\footnote{Again,
  1580.                     note that the `{\tt:}' is necessary on the user-defined
  1581.                     logical name so that it may be prepended to a file
  1582.                     specification} -
  1583.     \item[\cont] \verb|/PK_FONT_DIRECTORY=MY_PK:|\footnote{And/or {\tt
  1584.     /PXL\_FONT\_DIRECTORY=MY\_PXL\_FILES:}} \verb|MY_FILE|
  1585. \end{description}
  1586. Once such a private font has been proven locally in your directory, it would
  1587. be better if you got your local \TeX nician to install the fonts along with
  1588. the standard ones (unless there are licensing restrictions applicable to the
  1589. use of the non-standard fonts), since it will save the usage of all those
  1590. awkward command-line qualifiers!
  1591. \chapend
  1592. \section{The GINOtoSIX Program}\label{appx:GINOtoSIX}
  1593. This program was written by Squadron Leader John {\sc Baggott}, who was an
  1594. M.Sc.\ student at RMCS in 1987.  It is written in {\sc Fortran} and has a
  1595. full DCL command-line interface. \ifrmcs\else Any site that is interested
  1596. in acquiring a copy of the program is welcome to request it by sending an
  1597. e-mail message to the author of \DVItoLN{}, 
  1598. \verb+<TeX@uk.ac.cranfield.rmcs>+ ({\sc Janet}).\fi
  1599. \subsection{Preparing to use {\tt GINOtoSIX}} Before first attempting to use
  1600. the program, invoke its command definition, by executing the following
  1601. command:
  1602. \begin{description}
  1603. \item[\prompt] \tt SET COMMAND TEX\logsep EXE:GINOTOSIX    %%%     SYSDEP
  1604. \end{description}
  1605. (Frequent users of the utility may care to put this command into their login
  1606. command procedure.)
  1607. \subsection{Using the {\tt GINOtoSIX} Program}
  1608. Whatever graphics are required to be converted to sixel format must firstly
  1609. be output by GINO into a pseudo-code file (using the {\tt SAVDRA} driver).
  1610. Then invoke {\tt GINOtoSIX} as follows:
  1611. \begin{description}
  1612. \item[\prompt] \tt GINOTOSIX \meta{file\_name}
  1613. \end{description}
  1614. \subsubsection{Qualifiers applicable to {\tt GINOtoSIX}}
  1615. The utility can take a number of optional qualifiers, as under:
  1616. \begin{description}
  1617. \item[\tt/SIZE=(\meta{option,\dots})] Specifies the area, in millimetres, of
  1618. the sixel image.  If this qualifier is not used, the default action is to
  1619. copy the window size (or the paper size if windowing is not in effect) of
  1620. the saved picture segment.
  1621. Options are as follows:
  1622.     \begin{description}
  1623.     \item[\tt WIDTH:\meta{number}] Specifies the width in mm of the sixel
  1624.     image; defaults to the saved width.
  1625.     \item[\tt HEIGHT:\meta{number}] Specifies the height in mm of the sixel
  1626.     image; defaults to the saved height.
  1627.     \end{description}
  1628. If only one option is specified, the parentheses may be omitted.
  1629. {\bf N.B.} If this qualifier is used in conjunction with the {\tt/SCALE}
  1630. qualifier, the action is firstly to scale, then window the image.  If the
  1631. {\tt/SCALE} qualifier is not used, the image is scaled to fit the size
  1632. specified.
  1633. \item[{\tt/\rm[\tt NO\rm]\tt FORMFEED}] Instructs {\tt GINOtoSIX} to append
  1634. a form feed character to the end of the sixel file.  This allows the output
  1635. to be queued directly to the LN03 printer for previewing.  A formfeed must
  1636. {\bf not} be appended to sixel files that are to be imported into a \LaTeX{}
  1637. document by the \verb+\gino+ command (from the {\tt graphics} style option).
  1638. The default is {\tt/NOFORMFEED}.
  1639. \item[\tt/SCALE=\meta{factor}] Scale the stored image by a factor; the
  1640. default factor is $1{\cdot}0$.
  1641. \item[\tt/SEGMENT=\meta{integer}] Specifies which picture segment in the
  1642. {\tt SAVDRA} file is to be used for producing the image,  the default is
  1643. $0$.  If this qualifier is not used, the maximum record length for the input
  1644. file is used.
  1645. \item[\tt/OUTPUT=\meta{file\_spec}] Controls where the output file will be
  1646. written; \meta{file\_spec} may be a full or partial specification; if not
  1647. specified, the file name will be that of the input file, and its extension
  1648. will be {\tt.SIX}.
  1649. \end{description}
  1650. \subsection{Examples of the use of {\tt GINOtoSIX}}
  1651. \begin{enumerate}
  1652. \item \begin{description}\squash
  1653.       \item[\prompt] \verb+GINOTOSIX FRED+
  1654.       \end{description}
  1655.       The program will read the file {\tt FRED.PIC}, and produce a file {\tt
  1656.       FRED.SIX} from segment 0.  The size of the sixel image will be the
  1657.       same as the saved picture.
  1658. \item \begin{description}\squash
  1659.       \item[\prompt] \verb+GINOTOSIX/SCALE=0.5-+
  1660.       \item[\cont] \verb+    /OUTPUT=DISK$SCRATCH:[FRED]GRAPH.INC FRED.GNO+
  1661.       \end{description}
  1662.       Read a {\tt SAVDRA} from file {\tt FRED.GNO}, and produce a half-sized
  1663.       image in the file specified.
  1664. \item \begin{description}\squash
  1665.       \item[\prompt] \verb+GINOTOSIX/SIZE=(WIDTH:150,HEIGHT:100) FRED-+
  1666.       \item[\cont] \verb+        /SEGMENT=1/FORMFEED+
  1667.       \end{description}
  1668.       Reads segment 1 of {\tt FRED.PIC}, and scale the image uniformly to
  1669.       fit in a box 150mm wide and 100mm high.  A formfeed will be appended
  1670.       to permit the image to be previewed by printing the output file, {\tt
  1671.       FRED.SIX}.
  1672. \end{enumerate}
  1673. \chapend\begingroup
  1674. \catcode`\|=\active{\catcode`\_=\active
  1675. \gdef|{\bgroup\catcode`\_=\active
  1676.   \let_=\_\def\\##1|{{\it##1\/}\egroup}\\}}
  1677. \section{Error and Warning Messages}
  1678. This chapter describes all the various informational, warning, error and
  1679. fatal error messages that \DVItoLN{} can issue.  Most messages attempt to be
  1680. self-explanatory, but this section gives full details of the conditions
  1681. under which the error can be issued, and may therefore help the user in
  1682. discovering why \DVItoLN{} is unable to process his/her \DVI{} file.
  1683. \subsection{Fatal Errors}
  1684. The following errors indicate that \DVItoLN{} is unable to proceed further
  1685. with processing your \DVI{} file; where possible, methods are suggested to
  1686. allow you to circumvent the problem.  All such error messages commence with
  1687. the text `{\tt Fatal Error:}'\footnote{Simple, isn't it!} which precedes
  1688. the texts listed below.
  1689. If such an error occurs, \DVItoLN{}
  1690. will exit immediately, and the program's exit status will set the DCL symbol
  1691. \verb+$SEVERITY+ to $4$, thus indicating a \verb+SEVERE_ERROR+.
  1692. \subsubsection{Capacity Exceeded Errors}
  1693. When \DVItoLN{} is presented with input that results in it using up all of
  1694. some particular internal data structure, it is unable to go on!  All these
  1695. errors commence with the text `{\tt Fatal Error: capacity exceeded:}'.
  1696. One possible solution is to recompile \DVItoLN, using a larger value for
  1697. the appropriate parameter noted below.  If you find that this is necessary
  1698. at your site, please inform the author of \DVItoLN, who may be contacted by
  1699. electronic mail as \ifrmcs{\tt N::TEX}\else\verb|<TeX@uk.ac.cranfield.rmcs>|
  1700. ({\sc Janet})\fi.  However, sometimes it is possible to proceed by using the
  1701. \verb|/STARTING_PAGE| and \verb|/NUMBER_OF_PAGES| qualifiers to
  1702. process the \DVI{} file in two or more smaller portions, which {\em don't\/}
  1703. exceed the program's limits. 
  1704. \begin{description}
  1705.     \item[\tt font file name too long (max length=$x$)] --- You've had it!  The
  1706.     limit, $x$, set at $255$ by the \Web\ constant  |name_length|,
  1707.     is already at the maximum permitted by VAX/RMS. 
  1708.     \item[\tt stack size=$x$] --- \DVI{} files can contain |push| and  |pop|
  1709.     commands; \TeX{} reports in the file the maximum number of  |push|es
  1710.     that it uses, but the program has an overall limit of $x$, set to $100$
  1711.     through the \Web\ constant |stack_size|; if this value is exceeded, it's
  1712.     most probably due to some \meta{dvi byte} sequence running amok in a
  1713.     virtual font, since \TeX{} would be very hard-pressed to issue that many
  1714.     |push|es.
  1715.     \item[\tt too many blank verso pages] --- When printing in duplex mode, with
  1716.     the printer ``printing'' a blank side whenever two successive odd or
  1717.     even pages occur, the \DVItoLN{} program has to identify all such
  1718.     transitions before printing commences.  The current maximum is set by
  1719.     the \Web\ macro |max_blank_pages|, which has a value of $100$.  One
  1720.     solution which doesn't necessitate recompiling the program is to
  1721.     reorganize your document so that there are fewer chapters which 
  1722.     require an odd number of pages!
  1723.     \item[\tt too many glyphs $n$ > $x$] --- The total characters, $n$, in all
  1724.     the fonts referenced within your document exceeds the storage available,
  1725.     $x$.  The latter quantity is set by the constant |max_glyphs|
  1726.     in the \Web, and currently has the value $10000$.  It is unlikely
  1727.     that such a document could be printed, unless only a small percentage of
  1728.     those glyphs were actually {\em used\/} in the document, because the
  1729.     downloaded fonts would most probably exceed the memory available on the
  1730.     printer.
  1731.     \item[\tt too many fonts (max fonts=$x$)] --- Your document loads more than
  1732.     $x$ different fonts.  $x$ is set by the \Web{} constant 
  1733.     |max_fonts|, and currently is set to $100$.
  1734.     \item[\tt too many LN03 fonts] --- You've had it!  The LN03-plus is
  1735.     physically unable to image glyphs from more than |max_lnfonts|$+1 (= 14)$,
  1736.     so the ``solution'' is to process your document in sections, such that
  1737.     no section invokes so many glyphs that this limit is exceeded.  However,
  1738.     even the \TeX book and \MF book don't require this many fonts, so you've
  1739.     got a very convoluted document: should you perhaps speak to a
  1740.     typographic designer?
  1741.     \item[\tt too many names (name size=$x$)] --- The names of all the fonts
  1742.     used in your document exceed $x$ characters in total; $x$ is set by the
  1743.     \Web\ constant |max_names|, and is currently set to $1000$.
  1744.     \item[\tt too many virtual characters] --- Characters taken from a virtual
  1745.     font that require more than simple imaging of a single character from some
  1746.     real font result in the whole of the character's sequence of \meta{dvi
  1747.     byte}s being stored in memory.  If your document makes very intensive
  1748.     use of virtual fonts, it may be necessary to increase |vf_size| from its
  1749.     present value of $10000$
  1750. \end{description}
  1751. \subsubsection{Bad \DVI{} File Errors}
  1752. If \DVItoLN{} encounters a malformed \DVI\ file that prevents it from making
  1753. any sort of valiant attempt at processing it, the program aborts with an
  1754. error message that starts `{\tt Fatal error: Bad DVI file}'; the remainder
  1755. of these messages are listed below.  This is indicative of a serious error
  1756. in the \DVI{} file; if you didn't generate it yourself, using \TeX, perhaps
  1757. it was corrupted in the process of reaching your machine.  Whilst \DVItoLN{}
  1758. will attempt to explain what's wrong with the file, the tool to be used at
  1759. this point is {\sf DVItype}: type the command
  1760. \begin{description}
  1761. \item[\prompt] \verb|DVITYPE|
  1762. \end{description}
  1763. and follow the prompts to generate a printable analysis of the offending
  1764. file.
  1765. \pagebreak[3]
  1766. \begin{description}
  1767.     \item[\tt all 223s] --- A \DVI{} file is supposed to finish with at least 4
  1768.     characters having the value $223$; your file appeared to consist of
  1769.     nothing but this character!
  1770.     \item[\tt byte $m$ is not bop] --- \DVItoLN{} expected to find a |bop|
  1771.     command at this point in the \DVI{} file, since it was all ready to
  1772.     start processing a new page.  $m$ indicates the byte number within the
  1773.     file.
  1774.     \item[\tt byte $m$ is not post] --- \DVItoLN{} expected to find the start of
  1775.     the postamble at the indicated location in the file.
  1776.     \item[\tt denominator is $d$] --- \TeX{} reports in the \DVI{} file the
  1777.     actual size of the `DVI units' used therein; in fact, they are always
  1778.     {\tt1sp} in \TeX{} output, although it would be feasible for other
  1779.     programs that generate \DVI{} files to select a different unit.  \TeX{}
  1780.     reports the actual unit by means of a pair of integers, which, treated
  1781.     as a rational number, will convert `DVI units' to decimicrons
  1782.     ($0{\cdot}1\mu\hbox{m}=10^{-7}\hbox{m}$).  Thus the value given to the
  1783.     denominator by \TeX{} is usually $7227\cdot2^{16} = 473628672$, because
  1784.     there are $2^{16}$ scaled points in a point, and there are $7227$ points
  1785.     in 100 inches.  The numerator is then $25400000 \equiv 254\hbox{\tt cm} =
  1786.     100\hbox{\tt in}$.  This error message will be issued if the denominator
  1787.     is negative.
  1788.     \item[\tt first byte isn't start of preamble] --- The \DVI{} file is
  1789.     expected to start with the |pre| command, indicating the start of the
  1790.     preamble.
  1791.     \item[\tt ID byte is $k$] --- The second byte of the \DVI{} file indicates
  1792.     which version of DVI is in use; this program supports only version $2$.
  1793.     \item[\tt magnification is $m$] --- The \DVI{} file reports whatever
  1794.     \verb+\magnification+ may have been specified to \TeX; the given value
  1795.     is negative!
  1796.     \item[\tt no 223s] --- As mentioned above (see `{\tt all 223s}'), the
  1797.     postamble is followed by a sequence of at least four bytes having the
  1798.     value $223$; but this \DVI{} file didn't!
  1799.     \item[\tt numerator is $n$] --- See `{\tt denominator is $d$}' above.
  1800.     \item[\tt only $n$ bytes long] --- The \DVI{} file wasn't long enough to
  1801.     have contained a valid preamble and postamble, let alone any useful
  1802.     information!
  1803.     \item[\tt page ended unexpectedly] --- A page being processed finished
  1804.     without an explicit |eop| command, and is corrupt.
  1805.     \item[\tt page link $p$ after byte $q$] --- The start of a page was
  1806.     indicated as being so close after the start of the previous one that
  1807.     there were insufficient bytes to contain the necessary bytes that are
  1808.     required to follow the |bop| code.
  1809.     \item[\tt post pointer $q$ at byte $m$] --- Just after the postamble the
  1810.     address of the postamble itself is supposed to be stored: in the given
  1811.     \DVI{} file, this pointed {\em outside\/} the file!
  1812.     \item[\tt signature in byte $n$ should be 223] --- The {\em whole file\/}
  1813.     (after the end of the postamble) is supposed to be filled with the $223$
  1814.     bytes mentioned above; this file started off correctly, but then
  1815.     degenerated into something else!
  1816.     \item[\tt the file ended prematurely] --- Whilst processing a page,
  1817.     \DVItoLN{} detected the end of the \DVI{} file.
  1818. \end{description}
  1819. \subsubsection{Internal Errors}
  1820. These are those errors that fall into the category of ``this can't happen''.
  1821. The error message commences with `{\tt Fatal Error: Internal error}'.  Such
  1822. errors reveal some sort of coding error:  if you ever see one of these
  1823. errors, please contact the author, Brian {\sc Hamilton Kelly}, providing as
  1824. much information as is necessary for him to reproduce the fault; this should
  1825. include either the \TeX\ source, together with any non-standard style files,
  1826. or the actual \DVI{} file being processed --- the latter can be encoded with
  1827. {\sf VVencode}~\cite{RMCS:VVcode} for transmission by e-mail.
  1828. Reports should be sent to \ifrmcs{\tt N::TEX}\else
  1829.      {\tt<TeX@uk.ac.cranfield.rmcs> \sc(Janet)}\fi.
  1830. \begin{description}
  1831.     \item[\tt (no dvi\_length)] --- Program couldn't determine the
  1832.     actual length of the \DVI{} file.
  1833.     \item[\tt (word at odd byte $n$)] --- Words written into the
  1834.     downloaded font `file' must start at an even byte in the file.
  1835.     \item[\tt (longword at odd byte $n$)] --- Longwords written
  1836.     into the downloaded font `file' must start at an even byte in the file.
  1837.     \item[\tt (empty font)] --- An internal procedure has been
  1838.     asked to load an unused font to the printer.
  1839.     \item[\tt (-ve delta x)] --- A forward displacement in an
  1840.     output line has somehow managed to become a backwards one, despite
  1841.     sorting the list into non-overlapping segments!
  1842.     \item[\tt (String pool overflow)] --- More \verb+\special+
  1843.     strings are defined at program initialization than the program has room
  1844.     for. 
  1845. \end{description}
  1846. \subsubsection{Other Fatal Errors}
  1847. Certain other conditions can cause \DVItoLN{} to abandon hope; these just
  1848. commence with `{\tt Fatal Error:}'
  1849. \begin{description}
  1850.     {\sloppy\item[{\tt Bad /PK\_FONT\_DIRECTORY qualifier; doesn't end with
  1851.     a `]'}] --- The \linebreak[4] value provided for the
  1852.     \verb+/PK_FONT_DIRECTORY+ qualifier, after applying logical name
  1853.     translation, must end with a `{\tt]}' character; check what value is
  1854.     being used with this qualifier.} 
  1855.     \item[{\tt Bad /PXL\_FONT\_DIRECTORY qualifier; doesn't end with
  1856.     a `]'}] \hfil --- \linebreak[4] The value provided for the
  1857.     \verb+/PXL_FONT_DIRECTORY+ qualifier, after applying logical name
  1858.     translation, must end with a `{\tt]}' character; check what value is
  1859.     being used with this qualifier.
  1860.     {\sloppy\item[\tt Bad /\meta{qualifier} value] --- The value provided
  1861.     with the indicated qualifier does not form a valid integer.}
  1862.     {\sloppy\item[\tt Bad pk file---more bits than required] --- The packed
  1863.     pixel file currently being read (as shown by the preceding `{\tt Font
  1864.     \meta{fontname}}') provides more bits for a character packet than
  1865.     indicated in the character's preamble.}
  1866.     Replace the offending font; use {\sf PKtype} to analyze the pixel file.
  1867.     \item[\tt Bad pk file!  Bad packet length] --- The packed pixel file
  1868.     contains a character packet of an illegal length.
  1869.     Replace the offending font.
  1870.     \item[\tt Bad pk file,  pre command missing] --- The packed
  1871.     pixel file doesn't \linebreak[4] commence with the requisite |pre| command.
  1872.     Replace the offending font.
  1873.     \item[\tt Bad pk file; unexpected byte: $p$] --- Whilst reading a packed
  1874.     pixel file, the byte value $p$ was met: this was invalid in the current
  1875.     context.
  1876.     Replace the offending font.
  1877.     \item[\tt Bad pk file, wrong version] --- The packed pixel file is of a
  1878.     software version incompatible with the \DVItoLN{} program.
  1879.     Replace the offending font.
  1880.     \item[\tt Couldn't create \meta{filename}] --- \DVItoLN{} was
  1881.     unable to create the file indicated: check that you have write access to
  1882.     the current default directory, or that designated by the \verb+/OUTPUT+
  1883.     qualifier.
  1884.     {\sloppy\item[\tt Couldn't open \meta{filename}. Status=\meta{VMS\_Error}]
  1885.     --- When  \DVItoLN{} attempted to open the indicated file (for
  1886.     reading), it failed: the VMS-style error was reported by the run-time
  1887.     system. Perhaps the file's organization is incompatible with the type
  1888.     expected by the program, which generally expects text files to be
  1889.     variable-length, with carriage-return carriage control, and binary files
  1890.     to consist of 512-byte fixed-length blocks.}
  1891.     {\sloppy\item[\tt Font not loaded, TFM file \meta{filename} can't be opened]
  1892.     ---\DVItoLN{} \linebreak[4] was unable to locate the indicated \TFM{} file:
  1893.     it must be on your system somewhere, otherwise \TeX{} would have failed
  1894.     too!}
  1895.     \item[\tt no more virtual font bytes] --- Whilst processing a glyph taken
  1896.     from a virtual font, the program used up all the stored characters:
  1897.     really this should be classed as an internal error, and reported to the
  1898.     author.
  1899.     \item[\tt Font not loaded, bad scale ($s$)] --- The \TFM{} file indicated
  1900.     that the font was scaled to an impossibly high value, or negatively.
  1901.     Use {\sf TFtoPL} to analyze the \TFM{} file.
  1902.     \item[\tt Font not loaded, bad design size ($d$)] --- The \TFM{} file
  1903.     indicated that the font's design size was negative or an impossibly
  1904.     large value.
  1905.     Use {\sf TFtoPL} to analyze the \TFM{} file.
  1906.     \item[\tt No device type specified] --- No default value was provided for
  1907.     the qualifier \verb+/DEVICE_TYPE+.  Specify an explicit value, and get your
  1908.     \TeX nician to modify the {\tt DVITOLN03.CLD} file to reflect the local
  1909.     environment.
  1910.     \item[\tt No file name provided] --- You'd have been extremely sneaky to get
  1911.     this error; you've managed to bypass DCL's check that a filename be
  1912.     specified to be processed by the program!  Be more sensible!
  1913.     {\sloppy\item[\tt ---not loaded, bad TFM file] --- The \TFM{} file
  1914.     didn't specify a valid \linebreak[4] range of characters as being
  1915.     resident in the font.  Use {\sf TFtoPL} to analyze the \TFM{} file.}
  1916.     \item[\tt PXL file has bad format] --- The unpacked pixel raster file didn't
  1917.     contain a character directory in the last 517 words.
  1918.     Replace the font, or better, change to using the {\tt.PK} equivalent.
  1919.     \item[\tt starting page number could not be found] --- The starting page
  1920.     (specified with the \verb+/STARTING_PAGE+ qualifier) does not match any
  1921.     page in the \DVI{} file.
  1922.     {\sloppy\item[\tt (VF file) Character \meta{char\_num} does not exist]
  1923.     \hfil --- The  specified character has been used in the document, but
  1924.     that character does not exist within the virtual font. Use {\sf VFtoVP}
  1925.     to analyze the file.}
  1926.     {\sloppy\item[\tt (VF file) contains illegal command in character packet]
  1927.     \hfil --- The \linebreak[4] virtual font file contains an illegal command
  1928.     within a character packet. Use {\sf VFtoVP} to analyze the font file.}
  1929.     \item[\tt (VF file) First byte isn't `pre'] --- Virtual font files are
  1930.     expected to commence with a |pre| command; this file doesn't.
  1931.     Use {\sf VFtoVP} to analyze the file.
  1932.     {\sloppy\item[\tt (VF file) Illegal byte $x$ at start of character packet]
  1933.     \hfil --- The \linebreak[4] virtual font file contains an illegal
  1934.     command or font mapping command within or after one or more character
  1935.     packets.  Use {\sf VFtoVP} to analyze the font file.}
  1936.     \item[\tt (VF file) invokes unmapped font $f$] --- The virtual font file
  1937.     references a font which it hasn't mapped; use {\sf VFtoVP}.
  1938.     \item[\tt (VF file) References too many fonts] --- The virtual font file
  1939.     at\-tempt\-ed to map more actual fonts than \DVItoLN{} was capable of
  1940.     handling; the font is probably infinitely recursive.
  1941.     Use {\sf VFtoVP} to analyze the file.
  1942.     \item[\tt (VF file) Mapped font size is too big] --- The virtual font
  1943.     references an actual font and the size of the latter, and the scale at
  1944.     which it is invoked, exceeds the legal limits for a virtual font.
  1945.     Use {\sf VFtoVP} to analyze the file.
  1946.     \item[\tt (VF file) Negative packet length] --- The virtual font file is
  1947.     malformed.
  1948.     Use {\sf VFtoVP} to analyze the file.
  1949.     {\sloppy\item[\tt (VF file) Wrong version number in second byte] ---
  1950.     The virtual font file is of a version not supported by \DVItoLN. Use
  1951.     {\sf VFtoVP} to analyze the file.}
  1952.     \item[\tt {VF packet failed [\meta{font\_number},\meta{char\_num}]}]
  1953.     --- Whilst processing \linebreak[4] stored glyphs for a complex character
  1954.     taken from a virtual font, \DVItoLN{} failed to position the elements of
  1955.     the glyph; this might require to be reported as for an internal error,
  1956.     but firstly use {\sf VFtoVP} to analyze the file.
  1957.     \item[\tt Where are the font directories? (/PK\_FONT\_DIRECTORY,
  1958.     etc)] \hfil ---\linebreak[4] The command line specified neither the
  1959.     \verb+/PK_FONT_DIRECTORY+ qualifier, nor \verb+/PXL_FONT_DIRECTORY+. 
  1960.     At least one of these qualifiers ought to be supplied with a default
  1961.     value, through the command definition ({\tt DVITOLN03.CLD}) file.  Speak
  1962.     to your local \TeX nician.
  1963. \end{description}
  1964. \subsection{Non-fatal Error Messages}
  1965. Should one of the following errors be detected, \DVItoLN{} will attempt to
  1966. continue with processing your \DVI{} file; however, the resultant output
  1967. file will probably not produce the expected results.  When the program
  1968. finishes, the DCL symbol \verb+$SEVERITY+ will have the value $2$, thus
  1969. permitting a command procedure to detect that an error occurred.
  1970. Suggested error recovery techniques are given, when appropriate.  Once again,
  1971. the program {\sf DVItype} can provide a more detailed analysis of the
  1972. errors.
  1973. \begin{description}
  1974.     {\sloppy\item[\tt arithmetic overflow! parameter changed from $x$ to
  1975.     $y$] \hfil--- When \linebreak[4] processing \meta{dvi byte}s, a command
  1976.     was encountered that attempted to move the horizontal or vertical
  1977.     position to somewhere with a co\"ordinate exceeding $\pm(2^{31}-1)${\tt
  1978.     sp}.  Since this would imply being about 38ft from the origin, perhaps
  1979.     you'd be better off using {\sf DVItoAd\-vert\-ising\-Hoard\-ing}!}
  1980.     \item[\tt backpointer in byte $m$ should be $p$] --- The program has
  1981.     detected an inconsistency between the start of the current page and the
  1982.     previous one.
  1983.     \item[\tt bad postamble pointer in byte $m$] --- the word following the
  1984.     |post_post| command is supposed to point back to the start of the
  1985.     postamble: this one didn't!
  1986.     \item[\tt bop occurred before eop] --- Whilst processing a page, a |bop|
  1987.     command was detected before finding the |eop| that should have
  1988.     terminated the current page.
  1989.     \item[\tt byte $m$ is not postpost] --- The byte following the end of
  1990.     the postamble is not the anticipated |post_post| command.
  1991.     {\sloppy\item[\tt character $c$ invalid in font \meta{name}] --- The
  1992.     \DVI{} file  has requested that character $c$ be imaged from the
  1993.     currently selected font, and yet the font doesn't contain any such
  1994.     character; something might be printed, but it's anybody's guess as to
  1995.     what!}
  1996.     {\sloppy\item[\tt Couldn't open \bs special inclusion: \meta{file}] ---
  1997.     The  \DVI{} file contained a \verb+\special{ln03:sixel +%
  1998.     \meta{file}\verb+}+ command, but the program was unable to open the
  1999.     specified file. The VMS-style error report associated with this message
  2000.     might indicate why the file couldn't be opened.}
  2001.     \item[\tt Diagonal rule in \bs special \meta{special\_pars}] --- A
  2002.     \verb+\special+ command requested the \verb+connect+ operation,
  2003.     but the points specified were not in the same vertical or horizontal
  2004.     line: this \verb+\special+ should only be issued by the macros of the
  2005.     {\tt changebar} style option, and not by the user.
  2006.     \item[\tt identification in byte $m$ should be $i$] --- The \DVI{} file
  2007.     is supposed to contain the version number (currently $2$) at the
  2008.     beginning and the end of the file; the byte-address $m$ indicates which
  2009.     one failed.
  2010.     {\sloppy\item[\tt Invalid point number in \bs special
  2011.     \meta{special\_pars}] ---  A \verb+\special+ command, using the {\tt
  2012.     defpoint} or {\tt resetpoints} operations, specified an invalid point
  2013.     number ($>|max_points|$, which is a compile-time constant in the \Web),
  2014.     or the {\tt connect} operation specified a point that hadn't previously
  2015.     been defined.}
  2016.     \item[\tt non-ASCII character in \bs special command] --- The character
  2017.     string parameter of a \verb+\special+ command includes a character not
  2018.     in the {\sc Ascii} character set.
  2019.     \item[\tt ---not loaded, TFM file is bad] --- When reading a \TFM{}
  2020.     file, the program detected some discrepancy, which has probably already
  2021.     been reported.  Use {\sf TFtoPL} to analyze the file.
  2022.     \item[\tt Null \bs special argument] --- A \verb+\special+ command has
  2023.     an empty argument.
  2024.     {\sloppy\item[\tt Point number missing] {\tt in \bs special}
  2025.     \meta{special\_pars} ---  A point number was expected in a
  2026.     \verb+\special{ln03:defpoint}+ command.}
  2027.     \item[\tt pop illegal at level zero] --- Something's wrong with the
  2028.     \DVI{} file; it attempted to |pop| an environment when none had been
  2029.     stacked.
  2030.     {\sloppy\item[\tt postamble command within a page] --- Whilst processing
  2031.     a page,  \DVItoLN{} discovered a |post| command, without any prior
  2032.     |eop|.}
  2033.     \item[\tt preamble command within a page] --- This \DVI{} file is
  2034.     {\em really\/} twisted: a |pre| command was found during a page.
  2035.     \item[\tt push deeper than claimed in postamble] --- The current
  2036.     environment \linebreak[4] was |push|ed more often than \TeX{} had claimed.
  2037.     \item[\tt reference to an unloaded font] --- An attempt has been made to
  2038.     set a character from a font which hadn't been defined within the \DVI{}
  2039.     file.
  2040.     \item[\tt \bs special string of negative length] --- The |xxx| command
  2041.     which \TeX{} uses to pass a \verb+\special+ command in the \DVI{} file
  2042.     invalidly indicated that the string was of negative length!
  2043.     \item[\tt \bs special string too long] --- Just as the previous error,
  2044.     but it was too large positively in this instance.
  2045.     \item[\tt stack not empty at end of page (level $s$)] --- When \TeX{}
  2046.     gets to the end of a page, it's supposed to ensure that all environments
  2047.     that it's instructed to have been saved shall be restored; this \DVI{}
  2048.     file contravenes that requirement.
  2049.     \item[\tt undefined command \meta{dvi\_byte}] --- The \DVI{} file
  2050.     contains a command that is undefined; are you sure it was produced by
  2051.     TeX?
  2052.     {\sloppy\item[\tt Unsupported or malformed \bs special
  2053.     \meta{special\_pars}] ---  Couldn't find a \linebreak[4] properly formed
  2054.     operation code string in a \verb+\special+ command.}
  2055.     \item[\tt Unsupported \bs special \meta{special\_pars}] --- A
  2056.     \verb+\special+ command included an operation code, which whilst
  2057.     recognized, was inappropriate in the current context.
  2058.     \item[\tt VF checksum disagreed! TFM: $C_1$ VF: $C_2$] --- The sum check
  2059.     found in a {\tt.VF} file when reading a virtual font disagreed with that
  2060.     previously recorded in the font's \TFM{} file.
  2061.     \item[\tt VF design size disagreed! TFM: $S_1$ VF: $S_2$] --- The design
  2062.     size found in a {\tt.VF} file when reading a virtual font disagreed with
  2063.     that previously recorded in the font's \TFM{} file.
  2064. \end{description}
  2065. \subsection{Warning Messages}
  2066. These messages generally indicate some problem that didn't prevent
  2067. \DVItoLN{} from generating a valid output file; however, it might not print
  2068. out as you had anticipated!  Provided no errors occur, the exit status of
  2069. the program will have a \verb+$SEVERITY+ of $0$, thus permitting a command
  2070. procedure to detect that warning messages were issued.
  2071. \begin{description}
  2072.     \item[\tt cannot find file \meta{file\_spec}] --- \DVItoLN{} failed to
  2073.     locate the file containing the (packed or unpacked) pixel rasters; it
  2074.     will proceed by substituting solid rules for each glyph.  Remedy:
  2075.     Install the requisite font file on your system.
  2076.     {\sloppy\item[\tt Characters `\meta{text}' set off paper ( x =
  2077.     $x_s$..$x_e$, y = $y$ )] \hfil --- Some \linebreak[4] portion of the
  2078.     text is imaged outside that  area of the paper which can be written by
  2079.     the printer.  The $x$ values indicate the left- and right-hand limits of
  2080.     the text, whilst the $y$ value gives the vertical co\"ordinate of the
  2081.     baseline; all such dimensions are given in absolute pixel positions on
  2082.     the physical page. Perhaps you're printing something in landscape mode
  2083.     that was formatted to be printed in portrait, or vice versa?}
  2084.     \item[\tt checksum doesn't match; DVI=$C_1$ vs. TFM=$C_2$] --- When the
  2085.     font definition command was found in the \DVI{} file, its sum check was
  2086.     recorded; this should agree with that of the \TFM{} file itself, because
  2087.     it was written using the latter value when \TeX{} processed the source.
  2088.     Therefore this error indicates that you're trying to use different fonts
  2089.     from those read by \TeX\@.  Remedy: Replace the font, or reprocess the
  2090.     source with \TeX.
  2091.     \item[\tt checksum doesn't match in PK file] --- The font's sum check as
  2092.     recorded in the packed pixel file disagrees with that in the \TFM{}\@.
  2093.     This would suggest that the font should be rebuilt, using \MF{} and {\sf
  2094.     GFtoPK}.
  2095.     \item[\tt checksum doesn't match in PXL file] --- The font's sum check as
  2096.     recorded in the unpacked pixel file disagrees with that in the \TFM{}\@.
  2097.     This would suggest that the font should be rebuilt, using \MF{} and {\sf
  2098.     GFtoPX}. 
  2099.     \item[\tt ---checksum doesn't match previous definition] --- Each font
  2100.     definition appears twice in the \DVI{} file; the sum check recorded in
  2101.     the second definition disagrees with the first --- use {\sf DVItype}.
  2102.     \item[\tt denominator doesn't match the preamble] --- The denominator of
  2103.     the rational number which gives the size of each DVI unit (in
  2104.     decimicrons) which has been read from the postamble disagrees with that
  2105.     in the preamble --- use {\sf DVItype}.
  2106.     \item[\tt ---design size doesn't match previous definition] --- The
  2107.     font's design size in the second definition of the font disagrees with
  2108.     the first --- use {\sf DVItype}.
  2109.     {\sloppy\item[\tt Discarding earlier packet for character $c$] --- Whilst
  2110.     processing a \linebreak[4] virtual font file, a second definition for a
  2111.     character's glyph was encountered: the first definition will be
  2112.     discarded, and replaced by the last one --- use {\sf VFtoVP}.}
  2113.     \item[\tt extra junk at end of the VF file] --- Some unexpected bytes
  2114.     were discovered after the end of a virtual font ({\tt.VF}) file; to
  2115.     prevent this error recurring, use {\sf VFtoVP} to correct the error and
  2116.     rewrite the virtual font with {\sf VPtoVF}.
  2117.     {\sloppy\item[\tt Font \meta{name} doesn't contain character $c$] \hfil
  2118.     --- No  definition was encountered for the glyph of character $c$ when
  2119.     the font file's rasters were read: the character will be imaged by the
  2120.     appropriate amount of whitespace.}
  2121.     \item[\tt ---font name doesn't match previous definition] --- The name
  2122.     of the font given in the second definition within the \DVI{} file
  2123.     disagrees with the original defining occurrence --- use {\sf DVItype}.
  2124.     \item[\tt magnification doesn't match the preamble] --- The
  2125.     magnification reported in the postamble disagreed with that in the
  2126.     preamble --- use {\sf DVItype}.
  2127.     {\sloppy\item[\tt Missing or unknown unit of measure: \meta{text}] ---
  2128.     A unit of measure \linebreak[4] was expected, either within a
  2129.     \verb+\special+ command, or associated with one of the qualifiers
  2130.     \verb+/TOP_MARGIN+, \verb+/LEFT_MARGIN+, \verb+/HFUZZ+ or \verb+/VFUZZ+.
  2131.     A supplementary message will indicate what \meta{physical unit} was
  2132.     assumed ({\tt pt} or {\tt sp}).}
  2133.     \item[\tt more than $m$ rules on page; excess ignored] --- A page
  2134.     contained too many separate rules; the program is restricted to $16384$
  2135.     by the compile-time constant |max_rules|.  Perhaps something's run amok
  2136.     in a \LaTeX{} {\tt picture} environment?
  2137.     {\sloppy\item[\tt not enough signature bytes at end of file ($m$)] \hfil---
  2138.     \DVI{} files are \linebreak[4] supposed to end with at least four
  2139.     signature ($223$) bytes --- use {\sf DVItype}.}
  2140.     \item[\tt numerator doesn't match the preamble] --- The numerator of the
  2141.     rational fraction given in the postamble disagrees with that previously
  2142.     read from the preamble --- use {\sf DVItype}.
  2143.     \item[\tt /ORIENTATION must be PORTRAIT or LANDSCAPE;] {\tt assuming
  2144.     PORTRAIT} \hfil-- \linebreak[4]  The \verb+/ORIENTATION+ qualifier was given
  2145.     an illegal value; this should never happen, unless the command definition
  2146.     file has been corrupted.
  2147.     \item[\tt Page deeper than TeX reported by $y$pt] --- Characters were
  2148.     positioned further down the page lower than \TeX{} had recorded in the
  2149.     \DVI{} file.  This isn't an error, unless accompanied by an indication
  2150.     that characters were set off the paper.  See description of the
  2151.     \verb+/VFUZZ+ qualifier.
  2152.     \item[\tt Page wider than TeX reported by $x$pt] --- Characters were
  2153.     imaged beyond the right-hand margin that \TeX{} had recorded in the
  2154.     \DVI{}.  \cbstart This isn't an error, unless accompanied by an
  2155.     indication that characters were set off the paper\cbend.  See
  2156.     description of the \verb+/HFUZZ+ qualifier.
  2157.     {\sloppy\item[\tt Pixel width discrepancy; font ]\meta{name} {\tt char}
  2158.     $c$ {\tt ---computed width: $W_c$; actual width: $W_a$} ---  The width of
  2159.     the  indicated character, in pixels, differed from that computed from
  2160.     the \TeX{} font metrics (by at least two pixels).  The actual width is
  2161.     always used when imaging glyphs.}
  2162.     \item[\tt PK font pixels non-square] --- The {\sl aspect ratio\/} of the
  2163.     characters in the packed pixel file was not 1:1 --- will probably
  2164.     produce distorted glyphs, since the LN03 printer does print with square
  2165.     pixels.
  2166.     {\sloppy\item[\tt ---scaled size doesn't match previous definition] ---
  2167.     The  second \linebreak[4] definition of the font provided a different
  2168.     scaled size from that in the first definition --- use {\sf DVItype}.}
  2169.     \item[\tt there are really $m$ pages, not $n$] --- Although the
  2170.     postamble claimed that there were $n$ pages in the document, there were
  2171.     really $m$ --- use {\sf DVItype}.
  2172.     \item[\tt ---this font was already defined] --- A spurious additional
  2173.     font definition was encountered in the \DVI{} file --- use {\sf DVItype}.
  2174.     \item[\tt ---this font wasn't loaded before] --- When reading the
  2175.     postamble, a definition was encountered for a font that wasn't
  2176.     previously defined in the body of the \DVI{} file --- use {\sf DVItype}.
  2177.     \item[\tt VF data not a multiple of 4 bytes] --- Virtual font files
  2178.     ({\tt.VF}) are supposed to be some multiple of 4 bytes long --- use {\sf
  2179.     VFtoVP}.
  2180.     \item[\tt VF file ended without postamble] --- Whilst reading glyph
  2181.     definitions from a virtual font file, the |post| command was met
  2182.     unexpectedly --- use {\sf VFtoVP}.
  2183. \end{description}
  2184. \subsection{Informational Messages}
  2185. These are output to provide the user with an indication of the progress of
  2186. the process of translating the \DVI{} file into an {\tt.LN3} file.  If no
  2187. other messages are output, you can be assured that the printed version will
  2188. accord with what \TeX{} intended to put on the paper (although this might
  2189. not be what {\em you\/} intended!)
  2190. Provided that no warning or error messages were issued, the program's exit
  2191. status will have a \verb+$SEVERITY+ of \verb+SS$_SUCCESS+ ($1$), thus
  2192. permitting a command procedure to be confident that no warning or errors
  2193. occurred.
  2194. \begin{description}
  2195.     \item[\tt (\meta{file\_spec}\dots)] --- Whenever the \DVI{} file, or a
  2196.     file specified as a graphics inclusion, is opened, a left parenthesis
  2197.     and the full VAX/RMS file specification is reported on the terminal;
  2198.     when the file is closed, a matching right parenthesis is displayed.
  2199.     In the log (\TYP) file, the file specifications are accompanied by
  2200.     self-explanatory text.
  2201.     \item[{\tt [\meta{page\_no}]}] --- As \DVItoLN{} starts to process a
  2202.     page, a left bracket and the page number (which may consist of a series
  2203.     of integers, separated by periods) is displayed; when the end of the
  2204.     page is encountered, the matching right bracket is displayed.
  2205.     \item[\tt Finding starting page...found]\cbstart\footnotemark\cbend{}
  2206.     --- After the title has been  displayed, \DVItoLN{} starts locating the
  2207.     first page to be printed; at the same time, it works out if any blank
  2208.     pages will need to be interspersed during printing.  Since this
  2209.     operation can take a significant amount of time on a large document, the
  2210.     first part of this message is displayed so that the user won't think
  2211.     that the program has died; the `{\tt found}' is displayed when this
  2212.     processing is completed.
  2213.     \item[\tt Font \meta{name}] [{\tt (at $m$\%)}] {\tt loaded with}
  2214.     $n$ {\tt bytes of rasters (}$m$ {\tt\hyphenchar\the\font=`\-
  2215.     char\-act\-ers)}\cbstart\footnotemark\cbend{} --- The specified font
  2216.     (at the magnification shown, if not 100\%) has been included in the
  2217.     downloaded fonts; if $n$ seems very small, it may be because the glyphs
  2218.     of the font were too large to be downloaded and hence will be imaged
  2219.     individually wherever they appear. 
  2220.     {\sloppy\item[\tt Font \meta{name}] [{\tt (at $m$\%)}] {\tt unavailable;
  2221.     printing rules for glyphs}\cbstart\footnotemark\cbend{} ---  The
  2222.     specified font wasn't available at  the requested magnification;
  2223.     characters from this font will be imaged by printing solid rules of size
  2224.     determined from the \TeX{} font metrics. Previously, a `{\tt cannot find
  2225.     file}' warning will have been issued for this font.}
  2226.     \item[\tt Font \meta{name}] [{\tt (at $m$\%)}] {\tt is
  2227.     virtual}\cbstart\footnotemark\cbend{} --- The specified font was a
  2228.     virtual one; this may result in the loading of real fonts other than
  2229.     those specified by \TeX{} when the \DVI{} file was generated.
  2230.     {\sloppy\item[\tt Gathering font usage
  2231.     statistics...done]\cbstart\footnote{All these messages are suppressed if
  2232.     the {\tt/NOVERBOSE} qualifier is used.}\cbend{} \hfil--- Once the
  2233.     starting  page \linebreak[4] has been found, \DVItoLN{} makes one rapid
  2234.     pass through the \DVI{} file, noting which glyphs are used from each
  2235.     font.  Doing this allows us to save time and space that would otherwise
  2236.     be wasted by downloading the whole of a font.  It can take a significant
  2237.     amount of time, so the first part of this message is written to the
  2238.     display, and then an additional period will be displayed after
  2239.     processing every ten pages, thus giving the user an assurance that the
  2240.     program hasn't collapsed.}
  2241.     \item[\tt Reading from file \meta{file\_spec}] --- This message is
  2242.     written to the log (\TYP) file only, and records the full file
  2243.     specification of the \DVI{} file being processed.
  2244.     \item[\tt Sixel graphics included from: \meta{file\_spec}] --- This is
  2245.     recorded in the log (\TYP) file whenever a file is read by a
  2246.     \verb+\special{ln03:sixel}+ command.
  2247.     \item[\tt This is DVItoLN03, Vax/VMS Version $V$] --- This banner
  2248.     announcement identifies the version of the program, both on the screen
  2249.     and in the log (\TYP) file.
  2250.     \item[\tt Total of $n$ bytes of rasters downloaded] --- After all fonts
  2251.     have been downloaded, this message gives an indication of the total
  2252.     number of bytes that will be occupied by the downloaded fonts in the
  2253.     printer's memory. It can therefore be compared with the available
  2254.     memory, as reported on a printer test sheet (see~\cite{DEC:LN03}) to
  2255.     determine whether the resultant file can be printed correctly --- if
  2256.     there is insufficient memory, then process your document in smaller
  2257.     sections.  {\bf N.B.} If a document contains any pages that are printed
  2258.     in landscape mode, all downloaded fonts will be reoriented to that mode
  2259.     automatically by the printer: this can result in overflowing the
  2260.     available memory.
  2261. \end{description}
  2262. \endgroup
  2263. \chapend
  2264. \bibliographystyle{unsrt}
  2265. \addcontentsline{toc}{section}{References}
  2266. \bibliography{local_guides}
  2267. \end{document}
  2268.